基本上我尝试将数据库中所有模式的权限授予我之前创建的用户,如此
USE MyDatabase
GO
GRANT INSERT, SELECT, EXECUTE, DELETE TO MyUser -- note that no schema is specified
GO
现在,效果相当混乱。根据SSMS MyUser
对MyDatabase
具有以下有效权限:CONNECT,DELETE,EXECUTE,INSERT,SELECT。
但是,他似乎没有任何Schema的权利。所以我的问题是,上面GRANT
的影响是什么?对数据库中的每个grant
有任何方式schema
权限(像通配符那样)?
答案 0 :(得分:2)
您可以使用以下查询找出授予的权限:
SELECT d.*, OBJECT_NAME(major_id) AS ObjectName, SCHEMA_NAME(major_id) AS SchemaName
FROM sys.database_permissions d
INNER JOIN sys.database_principals u ON d.grantee_principal_id=u.principal_id
WHERE u.name='MyUser'
在这种情况下,权限是在整个数据库上授予的,这与在每个模式上授予这些权限相同。