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):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

在每个用户的Rails中使用片段缓存

Oracle 基础系列之1.3 用户管理

oracle新建对象 权限管理

Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段