码迷,mamicode.com
首页 > 数据库 > 详细

Oracle用户管理

时间:2018-10-21 21:55:50      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:知识   not   font   erro   系统权限   管理   tab   err   概念   

知识点总结:

一、系统权限 

 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、角色的授权使用

--先创建三个角色
SYS@oracle11g>create role r1;

Role created.

SYS@oracle11g>create role r2;

Role created.

SYS@oracle11g>create role r3;

Role created.

--分别授予权限
SYS@oracle11g>grant create session,create table to r1;

Grant succeeded.

SYS@oracle11g>grant create view to r2;

Grant succeeded.

SYS@oracle11g>grant create any table to r3;

Grant succeeded.
SYS@oracle11g>grant r2 to r1;

Grant succeeded.

SYS@oracle11g>grant r1 to tom;

Grant succeeded.
此时的tom就具有r1的权限,而r1又嵌套着r2的权限,实际上tom具有的权限有r1、r2下所有权限; --再将r3授予Tom SYS@oracle11g>grant r3 to tom; Grant succeeded.
此时的tom就具有r1的权限,而r1又嵌套着r2的权限,实际上tom具有的权限有r1、r2、r3下所有权限; --查看权限 TOM@oracle11g>select * from session_roles; ROLE ------------------------------ R1 R2 R3 TOM@oracle11g>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用户管理

标签:知识   not   font   erro   系统权限   管理   tab   err   概念   

原文地址:https://www.cnblogs.com/Memory-Python/p/9825640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!