Назад | Перейти на главную страницу

База данных myDb недоступна. (ObjectExplorer)

Я разрабатываю веб-приложение ASP.NET MVC3, которое подключается к базе данных SQL Server 2008 R2.

Все работало нормально, пока я не начал получать эту ошибку:

The database myDb is not accessible. (ObjectExplorer)

Эта проблема появляется также, когда я пытаюсь просмотреть базу данных в SQL Server Management Studio. Кажется, я как-то потерял разрешение на доступ к своей базе данных? Я прекрасно могу просматривать другие базы данных.

Я использую смешанный режим аутентификации (до сих пор проверка подлинности Windows работала нормально). Если я войду как sa Я получаю ту же ошибку.

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

Что в первую очередь могло вызвать это?

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

Обновить Что ж, после перезагрузки компьютера все снова заработало: / Я ничего не менял, ответы здесь еще не читал. Очень странно!

В прошлом я обнаружил, что это было из-за того, что владелец БД был invild, как будто он был удален из экземпляра SQL.

Попробуйте это из окна запроса:

use <database with issue>;
exec sp_changedbowner 'sa';

Затем он должен позволить вам просматривать БД в проводнике SSMS.

Если вы не используете аутентификацию в смешанном режиме, выведите «sa» с учетной записью домена, предпочтительно той, которая служит учетной записью службы с правами SA.

Обновить Что ж, после перезагрузки компьютера все снова заработало: / Я ничего не менял, ответы здесь еще не прочитал. Очень странно!

В принятом ответе написано, что все заработало после перезагрузки, но почему?

Это случилось со мной после того, как я попытался обновить базу данных с помощью SSDT (плагин Visual Studio), и скрипт завершился ошибкой. Тогда мне не удалось получить доступ к базе данных даже из SSMS (Management Studio). Рядом с моей записью в базе данных было указано «(Single User)», что указывало на проблему.

Сценарий установил базу данных в режим SINGLE_USER и внезапно завершил работу, прежде чем вернуть ее в MULTI_USER. После этого база данных считала, что пользователь SSDT все еще активен, и не разрешал никаких других подключений. Перезагрузка очистила это соединение (возможно, цикл службы SQL Server тоже сделал бы это), что позволило мне восстановить соединение.

Оттуда я мог вернуть базу данных в режим MULTI_USER, используя свойства БД (Параметры -> Состояние -> Ограничить доступ), но вместо этого я запустил SSDT из другой исходной ветки, которая завершилась, сбросив режим.

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

EXEC sp_change_users_login 'report'

Если да, то бегите ниже.

EXEC sp_change_users_login 'auto_fix', 'username_from_above'

Если это не поможет, попробуем откопать что-нибудь еще.