Oracle11g温习-第十八章:role管理
2013年4月27日 星期六
10:52
建立角色——给角色授权——将角色授予用户/角色 |
2、查看系统建立的role |
SYS @ prod > select * from dba_roles; ROLE PASSWORD ------------------------------ -------- CONNECT NO RESOURCE NO DBA NO SELECT_CATALOG_ROLE NO EXECUTE_CATALOG_ROLE NO DELETE_CATALOG_ROLE NO EXP_FULL_DATABASE NO IMP_FULL_DATABASE NO RECOVERY_CATALOG_OWNER NO GATHER_SYSTEM_STATISTICS NO LOGSTDBY_ADMINISTRATOR NO AQ_ADMINISTRATOR_ROLE NO AQ_USER_ROLE NO GLOBAL_AQ_USER_ROLE GLOBAL SCHEDULER_ADMIN NO HS_ADMIN_ROLE NO AUTHENTICATEDUSER NO OEM_ADVISOR NO OEM_MONITOR NO WM_ADMIN_ROLE NO JAVAUSERPRIV NO JAVAIDPRIV NO JAVASYSPRIV NO JAVADEBUGPRIV NO EJBCLIENT NO JAVA_ADMIN NO JAVA_DEPLOY NO CTXAPP NO XDBADMIN NO XDBWEBSERVICES NO OLAP_DBA NO OLAP_USER NO MGMT_USER NO PLUSTRACE NO |
3、建立角色( create role) |
SYS @ prod > create role pub_role; Role created. SYS @ prod > create role prv_role identified by oralce;【带口令的,一般非默认角色都应该加上口令,便于分配和管理】 Role created. |
4、给角色授权 |
SYS @ prod > grant create session,create table to pub_role; Grant succeeded. SYS @ prod > grant select on scott.emp to prv_role; Grant succeeded. |
5、查看role 拥有的权限 |
——SYSTEM PRIVILEGE SYS @ prod > select * from role_sys_privs where role='&name';
Enter value for name: DBA old 1: select * from role_sys_privs where role='&name' new 1: select * from role_sys_privs where role='DBA' ROLE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- DBA CREATE SESSION YES DBA ALTER SESSION YES DBA DROP TABLESPACE YES DBA BECOME USER YES DBA DROP ROLLBACK SEGMENT YES DBA SELECT ANY TABLE YES DBA INSERT ANY TABLE YES DBA UPDATE ANY TABLE YES DBA READ ANY FILE GROUP YES DBA CREATE EXTERNAL JOB YES SYS @ prod > select * from role_sys_privs where role='&name'; Enter value for name: CONNECT old 1: select * from role_sys_privs where role='&name' new 1: select * from role_sys_privs where role='CONNECT' ROLE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- CONNECT CREATE SESSION NO SYS @ prod > select * from role_sys_privs where role='&name'; Enter value for name: RESOURCE old 1: select * from role_sys_privs where role='&name' new 1: select * from role_sys_privs where role='RESOURCE' 【隐含unlimited tablespace 权限(可以在任何一个表空间上拥有配额) 如果将该角色分配给用户,一般都会将该权限收回,再进行表空间配额的分配】 ROLE PRIVILEGE ADMIN_OPT -------------------- ------------------------------ --------- RESOURCE CREATE SEQUENCE NO RESOURCE CREATE TRIGGER NO RESOURCE CREATE CLUSTER NO RESOURCE CREATE PROCEDURE NO RESOURCE CREATE TYPE NO RESOURCE CREATE OPERATOR NO RESOURCE CREATE TABLE NO RESOURCE CREATE INDEXTYPE NO 8 rows selected. SYS @ prod > select * from role_sys_privs where role='&name';
Enter value for name: PUB_ROLE old 1: select * from role_sys_privs where role='&name' new 1: select * from role_sys_privs where role='PUB_ROLE' ROLE PRIVILEGE ADMIN_OPT -------------------- ------------------------------ --------- PUB_ROLE CREATE TABLE NO PUB_ROLE CREATE SESSION NO ——OBJECT PRIVILEGE SYS @ prod > select * from role_tab_privs where role='&name'; Enter value for name: PRV_ROLE old 1: select * from role_tab_privs where role='&name' new 1: select * from role_tab_privs where role='PRV_ROLE' ROLE OWNER TABLE_NAME COLUMN_NAME PRIVILEGE GRANTABLE -------------------- --------------- --------------- --------------- -------------------- --------------- PRV_ROLE SCOTT EMP SELECT NO |
6、将role 分配给用户 |
——【default role:当用户建立session 时,用户所分配的role 上的权限会立刻生效。 (如果不显式指定,用户所分配的role都是该用户的default role,默认角色分配的权限一般都很少)】 SYS @ prod > create user tom identified by tom; User created. SYS @ prod > create user rose identified by rose; User created. SYS @ prod > alter user tom quota 10m on users; User altered. SYS @ prod > alter user rose quota 10m on users; User altered. SYS @ prod > grant pub_role,prv_role to tom,rose; ——【with admin option 用户有权将role 分配给其他用户】 Grant succeeded. ——【role 可以分配给用户,也可以分配其他role,不能分配给自己。 SYS @ prod > select * from user_role_privs; ——【默认情况下,pub_role 和 prv_role 都是tom的 default role】 USERNAME GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE OS_GRANTE --------------- ------------------------------ --------------- --------------- --------- TOM PRV_ROLE NO YES NO TOM PUB_ROLE NO YES NO TOM RESOURCE NO YES NO SYS @ prod > select * from scott.emp; 【tom 继承了prv_role的object privilege】 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 100 40 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 SYS @ prod > create table emp as select * from scott.emp; ——【tom 继承了pub_role的system privilege】 Table created. 【显式指定默认 role(对于非default role 必须在启用后,用户才能继承role 所具有的权限)】 SYS @ prod > conn /as sysdba Connected. SYS @ prod > alter user tom default role pub_role; User altered. SYS @ prod > conn tom/tom Connected. TOM @ prod > select * from user_role_privs; USERNAME GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE OS_GRANTE --------------- ------------------------------ --------------- --------------- --------- TOM PRV_ROLE NO NO NO TOM PUB_ROLE NO YES NO TOM RESOURCE NO NO NO TOM @ prod > select * from scott.emp; select * from scott.emp * ERROR at line 1: ORA-01031: insufficient privileges 【因为prv_role 是非 default role,所以tom 在建立session 不具有prv_role 的权限】 TOM @ prod > create table t1 (id int); Table created. TOM @ prod > set role prv_role; set role prv_role * ERROR at line 1: ORA-01979: missing or invalid password for role 'PRV_ROLE' SYS @ prod > set role prv_role identified by oracle; ——【启用非默认角色,如果有口令,需通过password 启用】
Role set. USERNAME GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE OS_GRANTE --------------- ------------------------------ --------------- --------------- --------- TOM ANNY_ROLE NO NO NO TOM PRV_ROLE NO NO NO TOM PUB_ROLE NO YES NO TOM RESOURCE NO NO N SYS @ prod > select * from scott.emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 100 40 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 【启用非 default role 后,用户就具有了非default role 的权限】 |
7、角色回收(revoke) |
SYS @ prod > revoke pub_role ,prv_role from tom,rose; Revoke succeeded. |
8、删除角色(drop) |
SYS @ prod > drop role pub_role; Role dropped. SYS @ prod > drop role prv_role; Role dropped. |
9、与角色有关的视图 |
DBA_ROLES: DBA_ROLE_PRIVS: ROLE_ROLE_PRIVS: DBA_SYS_PRIVS: ROLE_SYS_PRIVS: ROLE_TAB_PRIVS: SESSION_ROLES: |
Oracle11g温习-第十八章:role管理的更多相关文章
- Oracle11g温习-第十六章:用户管理
2013年4月27日 星期六 10:50 1.概念 (1)schema : user.object 就是用户创建的对象 (2)用户认证方式: ...
- Oracle11g温习-第十二章:tables
2013年4月27日 星期六 10:44 1.表的功能 存储.管理数据的基本单元(二维表:由行和列组成) 2.表的类型 1)普通表:[heap table(堆表) :数据存储时,无序的,对它的访问采 ...
- Oracle11g温习-第十一章:管理undo
2013年4月27日 星期六 10:40 1.undo tablespace 功能 undo tablespace 功能:用来存放从datafiles 读出的数据块旧的镜像 [ ...
- Oracle11g温习-第十九章:审计(audit)
2013年4月27日 星期六 10:52 1.审计的功能:监控用户在database 的 action (操作) 2.审计分类 1) session :在同一个session,相同的语句只产生一个审计 ...
- Oracle11g温习-第十四章:约束( constraint )
2013年4月27日 星期六 10:48 1.约束的功能 通过一些强制性商业规则,保证数据的完整性.一致性 2.约束的类别 1 ) not null 不允许为空 2 ) check ...
- 文献综述十四:基于Oracle11g的超市进销存管理系统设计与实现
一.基本信息 标题:基于Oracle11g的超市进销存管理系统设计与实现 时间:2016 出版源:技术创新 文件分类:对数据库的研究 二.研究背景 为超市设计开发的超市管理系统,采用的是 VC+ Or ...
- 《Linux内核设计与实现》读书笔记 第十八章 调试
第十八章调试 18.1 准备开始 需要准备的东西: l 一个bug:大部分bug通常都不是行为可靠而且定义明确的 l 一个藏匿bug的内核版本:找出bug首先出现的版本 l 相 ...
- Python之路【第十八章】:Django基础
Django基本配置 Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Se ...
- 第十八章 DjangoWeb开发框架
第十八章 DjangoWeb开发框架 第一课 内容概要: 1.JS正则 -登录注册验证 2.组件 1.BootStrap -css -js 学习BootStrap规则 2.jQueryUI -css ...
随机推荐
- 【C#】可空类型 NullAble<T>
在实际编写代码时候 , 会遇到很多场景, 需要将值置成空, 比如发货日期, 有可能是没有. 在没有可空类型之前, 程序都是用 魔值, 即为一个minValue或者常量, 来代表这个值为空, 也有用一 ...
- Linux 下上手 STC89C52RC
第一次接触单片机,自然选择了简单的51单片机.然而我的操作系统是 Linux .在 Windows 下上手51似乎很容易.但是 Linux 上搭建 51 开发环境不是很顺. 那么谈谈 Linux 我如 ...
- 移动端开发:使用jQuery Mobile还是Zepto
原:http://blog.csdn.net/liubinwyzbt/article/details/51446771 jQuery Mobile和Zepto是移动端的js库.jQuery Mobil ...
- Python数据类型补充1
一.可变和不可变类型 可变类型: 值变了,但是id没有变,证明没有生成新的值而是在改变原值,原值是可变类型 不可变类型:值变了,id也跟着变,证明是生成了新的值而不是在改变原值,原值是不可变 # x= ...
- 浅谈Java中的栈和堆
人们常说堆栈堆栈,堆和栈是内存中两处不一样的地方,什么样的数据存在栈,又是什么样的数据存在堆中? 这里浅谈Java中的栈和堆 首先,将结论写在前面,后面再用例子加以验证. Java的栈中存储以下类型数 ...
- [转]xml解析工具的效率比较QDomDocument、TinyXml-2、RapidXml、PugiXml
转自:http://www.itdaan.com/blog/2017/02/20/301ad47832f4.html 由于windows环境下测试不稳定,博主选择在linux下进行的测试! Qt - ...
- [原][osg]Geometry详解
//geometry成员变量 PrimitiveSetList _primitives; osg::ref_ptr<Array> _vertexArray; //顶点 osg::ref_p ...
- MySQL中的排序(ORDER BY)
当使用 SELECT FROM 时,如果不排 序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺 序将会受到MySQL重用回收存储 ...
- eclipse配置tomcat后出现:java virtual machine launcher Error:Could not ……,Program will exit.
原贴在stack overflow上:https://stackoverflow.com/questions/50085750/apache-tomcat-9-x-not-working-with-e ...
- python模块(4)
re正则 re.match 从头开始匹配 re.search 匹配包含 re.findall 把所有匹配到的字符放到以列表中的元素返回(没有group()方法) re.splitall 以匹配到的字符 ...