Oracle用户管理
Posted memory-python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle用户管理相关的知识,希望对你有一定的参考价值。
知识点总结:
一、系统权限
1、sys授予用户级联授权权限,例如:让tom用户能够给其他用户级联授予创建会话的权限
SYS@oracle11g>grant create session to tom with admin option; Grant succeeded.
2、sys用户权限回收无级联:当sys回收Tom的创建会话的权限时,Tom无法创建会话,但是Tom授予其他用户的创建会话的权限还会生效!
二、对象权限
1、sys授予用户级联授权权限
--tom不具备查询scott.emp权限 TOM@oracle11g>select * from scott.emp ; select * from scott.emp * ERROR at line 1: ORA-00942: table or view does not exist --tom不具备给marry用户授予查询scott.emp权限 TOM@oracle11g>grant select on scott.emp to marry; grant select on scott.emp to marry * ERROR at line 1: ORA-01031: insufficient privileges --sys用户开始给Tom授权 grant select on scott.emp to tom with grant option; ----tom具备查询scott.emp权限 TOM@oracle11g>select count(*) from scott.emp; COUNT(*) ---------- 14 --tom具备给marry用户授予查询scott.emp权限 TOM@oracle11g>grant select on scott.emp to marry; Grant succeeded. --验证 MARRY@oracle11g>select count(*) from scott.emp; COUNT(*) ---------- 14
2、sys级联回收权限,当sys用户revoke时,Tom不能查询scott.emp,同时marry也不能查询!
SYS@oracle11g>revoke select on scott.emp from tom; Revoke succeeded.
三、角色
概念:角色是一种权限的逻辑集合,我们把用户所需要的权限授予角色,然后将角色再授予用户,用角色的方式管理权限,这样就可以减少数据字典中的垃圾数据,也可以使权限管理更加的灵活。
1、角色的授权使用
--先创建三个角色 [email protected]>create role r1; Role created. [email protected]>create role r2; Role created. [email protected]>create role r3; Role created. --分别授予权限 [email protected]>grant create session,create table to r1; Grant succeeded. [email protected]>grant create view to r2; Grant succeeded. [email protected]>grant create any table to r3; Grant succeeded. [email protected]>grant r2 to r1; Grant succeeded. [email protected]>grant r1 to tom; Grant succeeded.
此时的tom就具有r1的权限,而r1又嵌套着r2的权限,实际上tom具有的权限有r1、r2下所有权限; --再将r3授予Tom [email protected]>grant r3 to tom; Grant succeeded.
此时的tom就具有r1的权限,而r1又嵌套着r2的权限,实际上tom具有的权限有r1、r2、r3下所有权限; --查看权限 [email protected]>select * from session_roles; ROLE ------------------------------ R1 R2 R3 [email protected]>select * from session_privs; PRIVILEGE ---------------------------------------- CREATE SESSION CREATE TABLE CREATE ANY TABLE CREATE VIEW
2、授予用户非默认角色(权限的动态管理)
将一个角色授予用户的时候,这个角色就是这个用户的默认角色,也就是说只要用户成功的创建了会话,角色中的权限马上释放;可将自认为危险的权限授予角色,然后授予用户,再把这个角色修改为用户非默认角色,这样用户成功创建会话时角色中的权限不会被释放;
--修改非默认角色 SYS@oracle11g>alter user tom default role all except r3; User altered. --查看得出Tom不具备r3的权限 TOM@oracle11g>select * from session_roles; ROLE ------------------------------ R1 R2 如果想使用r3权限,则需要激活角色,但是只能拥有r3的权限了 TOM@oracle11g>set role r3; Role set. TOM@oracle11g>select * from session_roles; ROLE ------------------------------ R3 如果想要所有角色可见 TOM@oracle11g>set role all; Role set. TOM@oracle11g>select * from session_roles; ROLE ------------------------------ R1 R2 R3
四、用户的资源管理
以上是关于Oracle用户管理的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Toad for Oracle 中使用自定义代码片段?
《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段
Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段