我正在使用MSSQL 2008 R2。我有一个特定的数据库,当它恢复时,可以从SQL Management Studio的每个人访问它。通过使用下面的SQL语句,我发现公共服务器角色已被授予此数据库的连接权限。
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
是否有任何撤销此权限的工作?
答案 0 :(得分:0)
正确的方法之一是
不要乱用公众
您的代码也误导了您:
sys.database_permissions.grantee_principal_id
指的是sys.database_principals
sys.database_permissions
/ sys.database_principals
和sys.server_principals
答案 1 :(得分:0)
我的解决方案是创建一个空数据库。然后使用生成脚本对表,视图和存储的procuder进行编写脚本。然后使用导入数据选项导入数据。所有这些只能使用Micosoft SQL Management Studio完成。