1.什么是角色?
角色是一组权限的组合,使用角色的目的是使权限管理更加方便。为了使用角色,首先在数据库中创建一个角色,这时角色中没有任何权限。然后向角色中添加权限。最后将这个角色授予用户,这个用户就具有了角色中的所有权限。在使用角色的过程中,可以随时向角色中添加权限,也可以随时从角色中删除权限,用户的权限也随之改变。如果要回收所有权限,只需将角色从用户回收即可。
2.角色分类
在 DM 数据库中有两类角色,一类是 DM 预设定的角色,一类是用户自定义的角色。 DM提供了一系列的预定义角色以帮助用户进行数据库权限的管理。预定义角色在数据库被创建之后即存在,并且已经包含了一些权限,数据库管理员可以将这些角色直接授予用户。
DM 预设定的主要角色:
DBA:DM 数据库系统中对象与数据操作的最高权限集合,拥有构建数据库的全部特权,只有 DBA 才可以创建数据库结构。
RESOURCE:可以创建数据库对象,对有权限的数据库对象进行数据操纵,不可以创建数据库结构。
PUBLIC:不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵。
VTI:具有系统动态视图的查询权限, VTI 默认授权给 DBA 且可转授。
SOI:具有系统表的查询权限。
3.角色常用语句
创建角色TT:
CREATE ROLE TT;
给TT授予resource和public的权限:
GRANT RESOURCE,PUBLIC to TT;
给TT授予创建表和索引的权限:
GRANT CREATE TABLE,CREATE INDEX TO TT;
给TT授予查询DMHR模式下CITY表的查询权限:
GRANT SELECT ON DMHR.CITY TO TT;
授予角色TT的权限给用户TEST:
GRANT TT TO TEST;
回收用户TEST的TT角色权限:
REVOKE TT FROM TEST;
启用角色TT:
sp_set_role('TT',1);
禁用角色TT:
sp_set_role('TT',0);
删除角色TT:
DROP ROLE TT;