"Не удается открыть базу данных Пользователя по умолчанию. Ошибка входа."после установки SQL Server Management Studio Express

У меня есть база данных в локальный файл, который используется программой. Программа имеет ограниченную функциональность, и мне нужно было выполнить несколько быстрых запросов. Я установил SQL Server Management Studio Express 2005 (SSMSE), подключился к экземпляру SQL Server, прикрепил файл базы данных и выполнил запросы. Теперь исходная программа больше не будет подключаться к базе данных. Я получаю сообщение об ошибке:

Не удается открыть базу данных Пользователя по умолчанию. Ошибка входа. Ошибка входа пользователя "MyComputerMyUserName".

Я вернулся в SSMSE и попытался установить базу данных по умолчанию. Я открыл безопасность, логины, встроенные администраторы и BUILTINUsers. Под общие, Я установил базу данных по умолчанию в базу данных программы. Под Сопоставления Пользователей, я убедился, что база данных отмечена и что разрешения db_datareader и db_datawriter тикали.

в программа использует строку подключения:

Server=(local)Instance; AttachDbFilename=C:PathToDatabaseDatabase.mdf; Интегрированная безопасность=True; экземпляр пользователя=True;

Я знаю jack-все об администрировании базы данных. Что еще я упускаю?

8 ответов


во-первых, попробуйте изолировать вашу проблему:

  1. сделать резервную копию файла! Некоторые из приведенных ниже шагов могут, по-видимому, в некоторых обстоятельствах привести к исчезновению файла.
  2. вы уверены, что подключаетесь к тому же экземпляру через Management Studio, что и программа?
  3. Если возможно, попробуйте закрыть экземпляр, который вы не ожидаете использовать.
  4. установите базу данных Пользователя по умолчанию в master и попробуйте сделать программу вход.
  5. попробуйте войти в систему как пользователь через Management Studio-поскольку вы интегрировали безопасность, вы должны открыть Management Studio как пользователь программы.
  6. вы используете "пользовательские экземпляры" - возможно, не зная его? Если да, то это может оказаться полезным: http://blogs.msdn.com/b/sqlexpress/archive/2006/11/22/connecting-to-sql-express-user-instances-in-management-studio.aspx

Я не много работал с файлами, прикрепленными в пути ваша программа делает - но вы пишете, что вы также подключили БД в студии управления. Вы пробовали отсоединить его там перед запуском программы? Возможно, вы видите, что студия управления и ваша программа конкурируют за эксклюзивный доступ к MDF-файлу?

EDIT: я добавил пункт 6 выше - это новое в моем собственном списке задач при устранении неполадок этого типа входа в систему. Но это очень похоже на то, что ты сейчас испытываешь.

EDIT2: в первом редактировании новый товар был добавлен в список. Таким образом, цифры в комментариях не соответствуют цифрам в ответе.


Это может не отвечать на ваш вопрос конкретно, но это поможет другим с аналогичной проблемой

проблема заключается в том, что ваш пользователь по умолчанию не имеет доступа к базе данных по любой причине (может быть переименован, удален, поврежден или ...) Чтобы решить проблему, просто следуйте следующей инструкции

  1. попробуйте войти снова на странице входа в систему есть другие вкладки выберите "свойства подключения."
  2. под вкладкой найдите "подключиться к базе данных" и выберите существующую базу данных, к которой у вас есть доступ, например tempdb или master
  3. после подключения к экземпляру SQL Server выполните следующий TSQL, чтобы назначить логину новую базу данных по умолчанию.

    Use master
    GO
    
    ALTER LOGIN [yourloginname] WITH DEFAULT_DATABASE = TempDB
    GO
    

альтернативно после подключения измените имя базы данных по умолчанию на master через UI

Статья взята из : http://www.mytechmantra.com/LearnSQLServer/Fix-cannot-open-user-default-database-Login-failed-Login-failed-for-user-SQL-Server-Error/


Я, наконец, понял это, и моя ситуация отличается от всех, о которых я читал сегодня вечером.

я восстановил свою базу данных из резервной копии. Я знал, что был определенный пользователь входа, который я использовал, поэтому я создал этого пользователя в SSMS. Тем не менее, в базе данных, которая вошла с резервной копией, уже был пользователь с таким именем.

поскольку я так много пытался исправить это, я не смог легко удалить пользователя под БД. Я удалил базу данных и восстановил снова. Затем:

  1. удалить пользователя в базе данных - >[моя база данных] - >пользователи
  2. создайте пользователя снова в Security - >Logins (не под вашей БД, хотя это, вероятно, тоже работает.
  3. перейдите к вновь созданному пользователю. выбрать Properties. Затем в разделе сопоставления пользователей скажите, чтобы ваша база данных была по умолчанию. Дайте ему доступ для чтения и записи.

резюме: у меня было два пользователя. Пришла с БД, и одной которую я создал. Удалите тот, который пришел с БД, и создайте свой собственный.


эта проблема проявилась для меня, когда я взял свою БД по умолчанию в автономном режиме. Следующее, что я помню, я не смог войти. Переключение на вкладку "Свойства подключения" и выбор раскрывающегося списка для изменения базы данных, к которой я хочу подключиться, также не удалось.

Он сразу же впустил меня, как только я вручную набрал master как db, к которому я хотел подключиться (на вкладке свойств соединения).


У меня также была эта же проблема, оказалось, что я пытался получить доступ к встроенным классам членства (в представлении), и что .Net пытался создать базу данных в папке App_Data:

@Membership.GetUser().ProviderUserKey

это вызовет систему, чтобы попытаться создать базу данных на основе встроенной системы членства, которая может быть не так, как ваша система настроена.


У меня была аналогичная проблема, пришлось просто загрузить утилиту SQL Express, которая способна запускать пользовательские экземпляры. SSEUtil-это инструмент, написанный командой Visual Studio для устранения неполадок с экземпляром пользователя, вы можете прочитать об этом в файле read me, установленном с помощью утилиты. http://www.microsoft.com/downloads/details.aspx?FamilyID=fa87e828-173f-472e-a85c-27ed01cf6b02&DisplayLang=en.

надеюсь, это поможет.


в моем случае я должен был установить" подключиться к любой базе данных " правильный путь:

на вашем экземпляре, перейдите к Security , потом Logins.

щелкните правой кнопкой мыши на там, вы увидите properties и вы должны нажать на Securables.

там он даст возможность подключиться к любой базе данных.


сначала нажмите на опцию> > кнопку" Подключиться к серверу".

теперь изменить подключение к базе данных на сервере, как мастер или msdb.

Более Подробная Информация

https://blog.sqlauthority.com/2008/11/04/sql-server-fix-error-4064-cannot-open-user-default-database-login-failed-login-failed-for-user/