Grant, Revoke, Deny

如果使用 DENY 语句禁止用户获得某个权限,那么以后将该用户添加到已得到该权限的组或角色时,该用户不能访问这个权限。

如果用户激活一个应用程序角色,DENY 对用户使用该应用程序角色访问的任何对象没有任何作用。虽然用户可能被拒绝访问当前数据库内的特定对象,但如果应用程序角色能够访问该对象,则当应用程序角色激活时,用户仍可以访问该对象。

使用 REVOKE 语句可从用户帐户中删除拒绝的权限。安全帐户不能访问删除的权限,除非将该权限授予了用户所在的组或角色。使用 GRANT 语句可删除拒绝的权限并将权限显式应用于安全帐户。

GRANT INSERT ON TableA TO RoleA
GO
EXEC sp_addrolemember RoleA, 'UserA' -- 用户UserA将有TableA的INSERT权限
GO

REVOKE INSERT ON TableA FROM RoleA -- 用户UserA将没有TableA的INSERT权限
GO

GRANT INSERT ON TableA TO RoleA
GO
DENY INSERT ON TableA TO UserA -- 虽然用户UserA所在RoleA有TableA的INSERT权限,但UserA本身被DENY了,所以用户UserA将没有TableA的INSERT权限

posted on 2009-06-18 23:03  smwikipedia  阅读(286)  评论(0编辑  收藏  举报

导航