SQL Fundamentals || DCL(Data Control Language) || 角色ROLES
|     语句  |        解释  |   
|     Create user  |        Creates a user(usually performed by a DBA)  |   
|     Grant  |        Gives other users privileges to access the objects  |   
|     Create role  |        Creates a collection of privileges, usually performed by a DBA  |   
|     Alter user  |        Changes a user's password  |   
|     Revoke  |        Removes privileges on an object from users  | 
通过数据字典查询
|     数据字典视图  |        描述  |   
|     dba_users  |        用户  |   
|     dba_ts_quotas  |        每个用户空间使用配额  |   
|     dba_profiles  |        查询profile文件  |   
|     dba_sys_privs  |        查询用户权限  |   
|     dba_roles  |        查看角色  |   
|     ROLE_SYS_PRIVS  |        授予角色的系统权限  |   
|     ROLE_TAB_PRIVS  |        授予角色的表权限  |   
|     USER_ROLE_PRIVS  |        授予用户的角色  |   
|     USER_SYS_PRIVS  |        授予用户的系统权限  |   
|     USER_TAB_PRIVS_MADE  |        用户对象上授予的权限  |   
|     USER_TAB_PRIVS_RECD  |        授予用户的对象权限  |   
|     USER_COL_PRIVS_MADE  |        用户某列上授予的对象权限  |   
|     USER_COL_PRIVS_RECD  |        授予用户某列上的对象权限  |   
什么是角色Role?
- 数据库系统是role-base基于角色的系统.
 - 角色是权限的集合.
 - 操作系统中是基于组的系统,操作系统是用户组group.
 - 组是用户的集合.
 - 可以将权限赋予一个用户,也可以将角色赋予一个用户.
 - 创建一个角色;
 
CREATE ROLE manager;
- 赋予给角色一个权限;
 
GRANT create table, create view To manager;
- 赋予一个角色给用户;
 
GRANT manager To wendy, gaga;
角色
- 建立用户而后为其授权是用户管理的基本操作,如果要想让一个用户正常进行操作,那么肯定需要授予很多的操作权限。如果说现在有100个用户,而且这些用户都需要具备相同的权限,那么在进行权限维护的时候肯定不可能针对于100个用户分别维护,而是需要将所有用户的权限一起进行维护,而在这时就只能够将多个权限加入到一个角色之中,通过对角色的维护来实现对多个用户的权限维护(可以是系统权限,也可以是对象权限),
 - 所谓的角色就是指一组相关权限的集合。
 
创建角色
如果用户要创建角色,则可以通过DBA或者是具有相应“CREATE ROLE”权限的用户来完成,
角色的创建语法如下所示。
|     CREATE ROLE 角色名称 [NOT IDENTIFIED | IDENTIFIED BY 密码 ;  |   
范例
|     创建一个普通的角色  |   
|     CREATE ROLE c##role_a ;  |   
|     创建一个带有密码的角色  |   
|     CREATE ROLE c##role_b IDENTIFIED BY hello ;  |   
为角色授权
- 当一个角色创建完成之后,里面并没有任何的权限,用户可以使用GRANT为角色进行授权。
 - 范例
 
|     为c##role_b角色授权  |   
|     GRANT CREATE SESSION , CREATE ANY TABLE , INSERT ANY TABLE TO c##role_b ;  |   
|     将c##role_a的角色授予c##gaga用户  |   
|     GRANT c##role_a TO c##gaga ;  |   
|     将c##role_a和c##role_b的角色授予c##wendy用户  |   
|     GRANT c##_role_a ,c##role_b TO c##wendy ;  |   
修改及回收角色
- 角色密码的设置
 
|     设置或取消角色密码  |   
|     ALTER ROLE 角色名称 [NOT IDENTIFIED | IDENTIFIED BY 密码 ];  |   
|     将c##role_a的角色密码设置为hello1  |   
|     ALTER ROLE c##role_a IDENTIFIED BY hello1 ;  |   
|     取消c##ole_b角色的密码  |   
|     ALTER ROLE c##role_b NOT IDENTIFIED ;  |   
- 通过角色回收权限
 
|     将CREATE VIEW的权限从c##role_a角色中回收  |   
|     REVOKE CREATE VIEW FROM c##role_a ;  |   
删除角色
- 当某个角色不再使用时,可以直接利用DROP命令将其删除。
 
DROP ROLE 角色名称 ;
- 删除c##role_b角色
 
DROP ROLE c##role_b ;
预定义角色
- 在Oracle之中为了减轻管理员的负担,专门提供了一些预定义角色。
 - 将CONNECT、RESOURCE角色授予c##wendy用户
 - GRANT CONNECT , RESOURCE TO c##wendy ;
 
|     预定义角色  |        描述  |   
|     EXP_FULL_DATABASE  |        导出数据库权限  |   
|     IMP_FULL_DATABASE  |        导入数据库权限  |   
|     SELECT_CATALOG_ROLE  |        查询数据字典权限  |   
|     EXECUTE_CATALOG_ROLE  |        数据字典上的执行权限  |   
|     DELETE_CATALOG_ROLE  |        数据字典上的删除权限  |   
|     DBA  |        系统管理的相关权限  |   
|     CONNECT  |        授予用户最典型的权限  |   
|     RESOURCE  |        授予开发人员的权限  |   

                
            
        
浙公网安备 33010602011771号