微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle角色

角色是一组相关权限的命名集合,使用角色最主要的目的是简化权限管理。

权限的集合,可以分配给一个用户或其他角色,但角色不能授予自己,也不能循环授予角色的。

可以先创建角色,向该角色赋予一系列权限,然后再将该角色授予多个用户或角色增加删除角色中的某一权限,被授予该角色的所有用户或角色自动地获得新增权限或删除旧的权限。

可以为角色设置密码

 

预定义角色。

connect自动建立,包含以下权限:

alter session;

create cluster;

create databaselink;

create sequence;

create session;

create synonym;

create table;

create view;

 

resource自动建立,包含以下权限:

create cluster、

create procedure、

create sequence、

create table、

create triggr。

 

dba (数据库管理员角色)

dba role拥有所有的系统权限,包括无限制的空间限额和给其他用户授予各种权限的能力。

 

显示角色信息的视图,

select * from role_sys_privs where role=‘CONNECT‘

select * from role_tab_privs;

select * from role_role_privs;

select * from session_roles;

select * from user_role_privs;

select * from dba_roles where role=‘CONNECT‘;

 

除了前面讲到的三种系统角色:connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role, 用户必须具有create role系统权限。

 

创建role,角色授权

sys/system用户创建角色

create role test_role;

  

删除角色

drop role test_role;

  

查看角色

select role,password_required from dba_roles where role=‘TEST_ROLE‘;

  

授系统权限

grant create table,create view,create session to itpux_role with admin option;

  

授对象权限

grant select,insert,update on scott.emp to test_role;

  

检查系统/对象权限

select * from role_sys_privs where role=‘TEST_ROLE‘; 

select * from role_tab_privs where role=‘TEST_ROLE‘;

  

角色授权给用户

drop user test cascade;

create user test identified by test;

grant test_role to test;

grant test_role to test with admin option;

create user test02 identified by test02;

sql> conn test/test

sql> grant test_role to test02;

  

检查角色授权信息

select * from dba_role_privs where granted_role=‘TEST_ROLE‘;

conn test/test

select * from user_role_privs;

select * from session_roles;

  

取消角色,删除角色

取消角色

revoke test_role from test02;

revoke test_role from test;

  

删除角色

drop role test_role;

  

设置认的角色

grant resource,connect to test;

grant dba to test;

  

授角色排除法:将用户认角色外的其他角色都设置为认角色

alter user test default role all except resource;

   

select * from dba_role_privs where grantee=‘TEST‘

  

激活和禁止角色

关于connect和resource预定义角色:

connect,resoure 是role包含很多的权限的,其中resource具有创建表,索引,视图和其他的oracle对象的能力,同时认带有unlimited tablespace权限。

一般将connect授予所有的普通用户

connect和resource授予开发人员

oracle声称connect和resource角色是为了与它早期的版兼容而保留的,尽可能不要使用这两个角色,以避免产生安全漏洞。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐