Ограничения для одного пользователя, даже если никто не подключен - PullRequest
1 голос
/ 16 июня 2020

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

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

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

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

1 Ответ

0 голосов
/ 12 июля 2020

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

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

Из Документов MS:

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

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

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

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

...