@vincent90
2016-01-25T12:13:13.000000Z
字数 693
阅读 1415
MSSQL
通过模块(如存储过程和用户定义函数)包装数据访问可在应用程序周围提供额外的保护层。通过仅对存储过程或函数授予权限,同时对基础对象(如表)拒绝权限,您可以防止用户直接与数据库对象进行交互。SQL Server 通过所有权链接实现此目的。
权限语句 | 描述 |
---|---|
GRANT | 授予权限。 |
REVOKE | 撤消权限。这是新对象的默认状态。从用户或角色撤消的权限仍可以从主体分配到的其他组或角色继承。 |
DENY | DENY 撤消一个权限,使其不能被继承。DENY 优先于所有权限,只是 DENY 不适用于对象所有者或 sysadmin 的成员。如果您针对 public 角色对某个对象执行 DENY 权限语句,则会拒绝该对象的所有者和 sysadmin 成员以外的所有用户和角色访问该对象。 |
DENY { SELECT | EXECUTE } ON [ sys.]system_object TO principal
[ sys.]
只有在引用目录视图和动态管理视图时才需要 sys 限定符。
system_object
指定要对其拒绝权限的对象。
principal
指定要从中撤消权限的主体。
DENY EXECUTE ON [HexStudyDB3Reader].[dbo].[SP_GlobalLongId] TO userName
除了拒绝权限,还有赋予和收回权限,更多见参考资料。