Отменить разрешение на подключение из роли Public - PullRequest
0 голосов
/ 03 августа 2011

Я использую MSSQL 2008 R2.У меня есть конкретная база данных, которая при восстановлении доступна для всех из SQL Management Studio.Используя приведенный ниже оператор SQL, я определил, что роли сервера Public было предоставлено разрешение на подключение к этой базе данных.

use db_mydb
SELECT * 
  FROM sys.database_permissions 
 WHERE grantee_principal_id = (SELECT principal_id 
                                 FROM sys.server_principals 
                                WHERE name ='public')

В результате этого запроса ниже

0 DATABASE 0 0 2 1 CO CONNECT G GRANT

Есть ли способ отозвать это разрешение?

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

Моим решением для этого было создать пустую базу данных. Затем создайте сценарии для таблиц, представлений и сохраненных прокуроров, используя Generate Scripts . Затем импортируйте данные, используя параметр Импорт данных . Все это можно сделать, используя только Micosoft SQL Management Studio.

0 голосов
/ 03 августа 2011

Одним из правильных способов будет

  • Запуск DROP USER для всех пользователей в базе данных
  • Запуск DENY CONNECT TO этих пользователей

Don 'не связывайтесь с публичными

Ваш код также вводит вас в заблуждение:

  • Общедоступная роль уровня сервера не связана с общедоступной ролью уровня базы данных
  • sys.database_permissions.grantee_principal_id относится кsys.database_principals
  • Для ролей нет общего столбца между sys.database_permissions / sys.database_principals и sys.server_principals
...