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".