一.角色管理的概述

1.角色的概念

为了简化数据库权限的管理,在Oracle数据库中引入了角色的概念。所谓的角色就是一系列相关权限的集合。

2.角色的特点

在数据库中,角色的名称必须是唯一的,不能与用户同名。

由于角色不是模式对象,当创建角色的用户被删除时对角色没有任何影响。

角色可以包含任何的系统权限和对象权限

       角色可以授予任何数据库用户和其他角色

授予用户的角色可以随时禁用或激活

可以使用default role语句设置用户的默认角色

如果创建角色时指定需要验证,则激活该角色时需要提供验证信息

可以随时增加或删除角色所具有的权限

3.优点

减少权限管理的工作量。

实现权限的动态管理

有效的使用权限

提供应用安全性

4.角色的分类    主要分为预定义角色与自定义角色

二.预定义角色

在Oracle11g数据库中有50多个预定义角色。最常用的有

dba

resource

connect等

查询当前数据库的的所有预定义角色

SQL> select * from dba_roles;

ROLE                           PASSWORD_REQUIRED AUTHENTICATION_TYPE
------------------------------ ----------------- -------------------
CONNECT NO NONE
RESOURCE NO NONE
DBA NO NONE
SELECT_CATALOG_ROLE NO NONE
EXECUTE_CATALOG_ROLE NO NONE
DELETE_CATALOG_ROLE NO NONE
EXP_FULL_DATABASE NO NONE
IMP_FULL_DATABASE NO NONE
LOGSTDBY_ADMINISTRATOR NO NONE
DBFS_ROLE NO NONE
AQ_ADMINISTRATOR_ROLE NO NONE
AQ_USER_ROLE NO NONE
。。。。。。。

  这是所有的预定义的所有的角色

三.创建角色

语法

CREATE ROLE role[NOT IDENTIFIED]|[IDENTIFIED [BY password]]|EXTERNALLY|GLOBALLY

NOT IDENTIFIED:角色曹勇数据库认证,激活时不需要口令

创建4个角色,一个采用不需要口令数据库认证,一个采用需要口令数据库认证,一个采用操作系统认证,一个采用全局认证

SQL> create role role_emp;

Role created

SQL> create role role_emp identified by role_manager;

SQL> create role role_manager identified by role_manager;

Role created

SQL> create role role_external identified externally;

Role created

SQL> create role role_global identified  globally;

Role created

  四.角色权限的授予与回收

需要注意的

1.使用grant语句为角色授权的时候,自己需要grant admin option,或者是grant grant option

2.在Oracle11 g中不允许角色授权带有grant admin option,或者是grant grant option

五.修改角色

ALTER ROLE role[NOT IDENTIFIED]|[IDENTIFIED [BY password]]|EXTERNALLY|GLOBALLY

六.禁用与激活角色

1.禁用所有角色

set role none;

2.激活指定角色

set role  connect ,resource,role_emp identified by role_emp;

3.激活除了个别角色外其他所有角色

set role all except role_manager,role_emp;

4.激活所有角色

set role all;

5.删除角色

drop role role_emp;

七.利用角色进行权限管理

设置用户的默认角色

alter user user default  role role_list|[all [except role_list]]|none;

1.禁用用户user1的所有角色,当用户user1登录数据库时所有角色处于禁用状态

alter user user1 default role none;

2.将用户user1的角色connect,resource设置为默认角色

alter user  user1 default  role connect,resource;

3.将用户的所有角色设置为默认角色

alter user user1 default role all;

4.将用户除默认角色外的,其他角色都设置为默认角色

alte user user1 default role all execpt resource;

最新文章

  1. C# 文件读写
  2. luogg_java学习_12_线程
  3. FineUI(专业版)v2.6.0即将支持的两个新特性!
  4. INI文件的读取(C语言:GetPrivateProfileString/GetPrivateProfileInt)
  5. ssm框架中的struts我的配置问题
  6. 2014年4月份第4周51Aspx源码发布详情
  7. MSVC和MinGW组件dll相互调用
  8. 轻量linux-Crunch bang
  9. [转]C#设置WinForm快捷键
  10. javascript常用的小知识
  11. java中的容器问题
  12. form表单提交不成功提示
  13. 纯JS写最简单的图片轮播
  14. Python-包-65
  15. Mysql数据库中的日期相关操作
  16. 《Linux内核设计与实现》 第五章学习笔记
  17. Linux之HugePages快速配置
  18. Apache Kafka 0.11版本新功能简介
  19. java多线程-----volatile
  20. 38、使用IO流进行文件拷贝

热门文章

  1. Mysql8.0.16 only_full_group_by
  2. Java容器:HashMap和HashSet解析
  3. Sql server不同数据类型间拼接(+)
  4. retrival and clustering : week 3 k-means 笔记
  5. numpy和TensorFlow的函数
  6. 鼠标滑入滑出,输入框获得失去焦点后触发事件的N种方法之一二
  7. Jquery实现Bootstrap树形列表
  8. Laravel5.1 模型 --多态关联
  9. 一入python深似海--变量和对象
  10. 使用JMAP dump及分析dump文件