SQL Server: не удается открыть базу данных, запрошенную именем входа
во время отладки ASP.Net приложение MVC работает под IIS Express, я получаю следующую ошибку при попытке использовать поставщик членства:
не удается открыть базу данных "MyDB", запрошенную логином. Ошибка входа в систему.
ошибка входа для пользователя "MY-PCMyName".
Я попытался устранить, выполнив действия, описанные в
https://stackoverflow.com/a/2577854/141172
SELECT SUSER_ID('MY-PCMyName')
возвращает идентификатор.
SELECT USER_ID('MY-PCMyName')
возвращает NULL
CREATE USER [MY-PCMyName] FROM LOGIN [MY-PCMyName]
возвращает сообщение об ошибке
логин уже имеет учетную запись под другим именем пользователя.
действительно, есть учетная запись входа, автоматически созданная при создании базы данных, называется
dbo
карты для MY-PCMyName
.
моя строка подключения
Data Source=.SQLEXPRESS;Initial Catalog=MyDB;Persist Security Info=True;Integrated Security=SSPI;
запуск в производственной среде я бы знал, как создать соответствующих пользователей и входов в систему. Я застрял в том, как решить тот факт, что IIS Express использует мое имя учетной записи Windows, чтобы попытаться войти в MyDB, когда эта учетная запись Windows уже связана с dbo
.
1 ответов
оказалось, что это опечатка в начальной части каталога строки подключения.
глядя в журнал событий, я увидел ошибку, как
ошибка входа для пользователя "MY-PC\MyName". Причина: не удалось открыть явно указанную базу данных. [Клиент:]
затем, глядя на вкладку "Подробности" того же события, я увидел, что Двоичные Данные В Байт информация, содержащаяся
0000: 18 48 00 00 0E 00 00 00 .H......
0008: 17 00 00 00 45 00 52 00 ....E.R.
0010: 49 00 43 00 2D 00 4F 00 I.C.-.O.
0018: 52 00 49 00 47 00 49 00 R.I.G.I.
0020: 4E 00 5C 00 53 00 51 00 N.\.S.Q.
0028: 4C 00 45 00 58 00 50 00 L.E.X.P.
0030: 52 00 45 00 53 00 53 00 R.E.S.S.
0038: 00 00 07 00 00 00 6D 00 ......m.
0040: 61 00 73 00 74 00 65 00 a.s.t.e.
0048: 72 00 00 00 r...
уведомления как последняя часть этого UTF-16 закодировала слово "мастер". Это вывело меня на след, что соединение осуществляется с мастер каталог, а не запрошенный, что, в свою очередь, приводит к замечанию опечатки в имени каталога в строке подключения.
было бы намного лучше, если бы Microsoft просто показала ошибку типа "нет такого каталога: MyCatalog".