Ограничения для одного пользователя, даже если никто не подключен

При использовании SQL Server Management Studio я пытаюсь запросить БД, созданную с ограничениями "для одного пользователя".

Я вхожу в систему, используя учетные данные SQL и пользователя "sa", и, выполнив команду sp_who2, я дважды проверяю, что никто не подключен к БД, тем не менее, при выполнении запроса к таблице БД система отвечает:

База данных "MyDB" уже открыта и может иметь только одного пользователя одновременно.

Я хочу понять, почему у меня возникла эта проблема. Кто-нибудь может помочь в этом?

1 ответ

Когда вы устанавливаете базу данных в "однопользовательском" режиме, вы можете открыть только одно соединение с базой данных (подробнее здесь).

Поэтому, когда вы открываете SSMS для навигации по объектам базы данных, вы открываете единственное разрешенное соединение. После этого любая другая операция, требующая нового подключения к базе данных, завершится ошибкой, например, создание нового окна запроса для записи запроса.

Из MS Docs:

Когда вы запускаете экземпляр SQL Server в однопользовательском режиме, SQL Server Management Studio может подключаться к SQL Server. Обозреватель объектов в Management Studio может выйти из строя, поскольку для некоторых операций требуется более одного подключения. Для управления SQL Server в однопользовательском режиме выполняйте операторы Transact-SQL, подключаясь только через редактор запросов в Management Studio, или используйте служебную программу sqlcmd.

То же самое происходит локально, если у вас запущен агент SQL Server.

Еще один совет от MS Docs (если вы используете SQL Server локально):

Остановите службу агента SQL Server перед подключением к экземпляру SQL Server в однопользовательском режиме; в противном случае служба агента SQL Server использует соединение, тем самым блокируя его.

Другие вопросы по тегам