"Не удается открыть базу данных Пользователя по умолчанию. Ошибка входа."после установки 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 ответов
во-первых, попробуйте изолировать вашу проблему:
- сделать резервную копию файла! Некоторые из приведенных ниже шагов могут, по-видимому, в некоторых обстоятельствах привести к исчезновению файла.
- вы уверены, что подключаетесь к тому же экземпляру через Management Studio, что и программа?
- Если возможно, попробуйте закрыть экземпляр, который вы не ожидаете использовать.
- установите базу данных Пользователя по умолчанию в master и попробуйте сделать программу вход.
- попробуйте войти в систему как пользователь через Management Studio-поскольку вы интегрировали безопасность, вы должны открыть Management Studio как пользователь программы.
- вы используете "пользовательские экземпляры" - возможно, не зная его? Если да, то это может оказаться полезным: http://blogs.msdn.com/b/sqlexpress/archive/2006/11/22/connecting-to-sql-express-user-instances-in-management-studio.aspx
Я не много работал с файлами, прикрепленными в пути ваша программа делает - но вы пишете, что вы также подключили БД в студии управления. Вы пробовали отсоединить его там перед запуском программы? Возможно, вы видите, что студия управления и ваша программа конкурируют за эксклюзивный доступ к MDF-файлу?
EDIT: я добавил пункт 6 выше - это новое в моем собственном списке задач при устранении неполадок этого типа входа в систему. Но это очень похоже на то, что ты сейчас испытываешь.
EDIT2: в первом редактировании новый товар был добавлен в список. Таким образом, цифры в комментариях не соответствуют цифрам в ответе.
Это может не отвечать на ваш вопрос конкретно, но это поможет другим с аналогичной проблемой
проблема заключается в том, что ваш пользователь по умолчанию не имеет доступа к базе данных по любой причине (может быть переименован, удален, поврежден или ...) Чтобы решить проблему, просто следуйте следующей инструкции
- попробуйте войти снова на странице входа в систему есть другие вкладки выберите "свойства подключения."
- под вкладкой найдите "подключиться к базе данных" и выберите существующую базу данных, к которой у вас есть доступ, например tempdb или master
-
после подключения к экземпляру 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. Тем не менее, в базе данных, которая вошла с резервной копией, уже был пользователь с таким именем.
поскольку я так много пытался исправить это, я не смог легко удалить пользователя под БД. Я удалил базу данных и восстановил снова. Затем:
- удалить пользователя в базе данных - >[моя база данных] - >пользователи
- создайте пользователя снова в Security - >Logins (не под вашей БД, хотя это, вероятно, тоже работает.
- перейдите к вновь созданному пользователю. выбрать 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.
Более Подробная Информация