权限的授予分为三部分:权限(Permission),安全对象(Securable)和安全主体(Principal),这三个术语之间的关系是:Grant Permission on Securable to Principal,通俗地解释是:授予Principal操作Securable的Permission。Principal是被授予权限的实体,Securable是table,view等对象,是Principal操作的对象;有时Principal也会作为Securable,被其他Principal操纵。
一,Role 作为 Principal,被授予权限
查看Permission列表,点击:Permissions (Database Engine),这里列出的是单个权限(Individual permission),role 是权限的集合。
1, 创建角色
Role分为数据库角色和服务器角色,AUTHORIZATION owner_name 子句用于指定角色Owner
CREATE ROLE role_name
AUTHORIZATION owner_name
CREATE SERVER ROLE role_name
AUTHORIZATION server_principal
角色的所有者,在删除所有者之前,必须修改角色的所有者关系,经常把角色的所有者设置为dbo:
ALTER AUTHORIZATION
ON ROLE::[role_name] TO [dbo]
如果数据库用户拥有一个role,在删除用户时,数据库将抛出错误:
The database principal owns a database role and cannot be dropped.
2,将权限授予角色,角色是权限的集合
Role作为一个Principal,可以使用Grant子句为role授予权限,这里为role授予Object的Permissions
GRANT &