角色使权限管理更容易
创建角色
无口令保护角色、有口令保护角色、操作系统认证角色,目录服务认证角色
不认证角色
create role xxwz_role;
有口令保护角色
create role xxwz_role identified by bbk;
授权给角色
grant create session to xxwz_role;
再把角色给用户
grant xxwz_role to xxwz;
dba_roles角色表
预定义角色:
CONNECT
RESOURSE
DBA
SELECT_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
授权角色给角色
grant xxwz_role to xxwz_role1;
查询角色包含那些角色特权
select * from role_role_privs where role='xxwz_role';
查询某角色的Object特权
role_tab_privs
查询某角色的系统特权
role_sys_privs
查询某一角色和用户的系统特权
select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;
建立用户缺省角色(一连接就加载的)
先grant DBA to scott;
alter user scott default role DBA;
或
alter user scott default role ALL;把已经赋给用户的角色全部设置为缺省
或
alter user scott default role ALL EXCEPT dba;
或
alter user scott default role NONE;
临时起用enable/disable已授权非缺省角色
set role r1,xxwz_role identified by bbk;
撤销角色从用户
revoke xxwz_role from xxwz;
revoke xxwz_role from PUBLIC;
删除角色
drop role xxx;
创建应用安全角色(通过PL/SQL包)
create role admin_role
identified using hr.employee
角色数据字典
dba_roles
dba_role_privs
role_role_privs
dba_sys_privs
role_sys_privs
role_tab_privs
session_roles