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


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

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

Я вернулся в SSMSE и попытался установить базу данных по умолчанию. Я открылбезопасность, логины, встроенныеадминистраторы ивстроенныепользователи . В Разделе General я установил базу данных по умолчанию в базу данных программы. Под пользовательскими отображениями я убедился, что база данных помечена и что db_datareader и db_datawriter отмечены галочками.

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

Server=(local)Instance; AttachDbFilename=C:PathToDatabaseDatabase.mdf; Integrated Security=True; User Instance=True;

Я знаю Джека-все об администрировании баз данных. Чего еще мне не хватает?

8 10

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 выше - это новое в моем собственном списке TODOs при устранении неполадок этого типа входа в систему не удалось. Но это очень похоже на то, что вы сейчас испытываете.

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

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

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

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

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

Альтернативно после подключения измените имя базы данных по умолчанию на master via 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 в качестве базы данных, к которой я хотел подключиться (на вкладке свойства соединения).

У меня также была такая же проблема, оказалось, что я пытался получить доступ к встроенным классам членства (в представлении), и что .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.

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

Сначала нажмите на кнопку Option>> приглашения "подключиться к серверу".

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

Подробнее

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