首页 > 代码库 > SQL Fundamentals || DCL(Data Control Language) || 角色ROLES

SQL Fundamentals || DCL(Data Control Language) || 角色ROLES

SQL Fundamentals || Oracle SQL语言

语句

解释

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_ac##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之中为了减轻管理员的负担,专门提供了一些预定义角色。
  • CONNECTRESOURCE角色授予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

授予开发人员的权限

 

SQL Fundamentals || DCL(Data Control Language) || 角色ROLES