Oracle对象与系统权限小测


--系统权限表
select * from dba_sys_privs p where p.privilege like '%LINK%'
 
--对象权限表
select * from dba_tab_privs tp where tp.owner='SCOTT'

--在网上看到的:
--- ALL_COL_PRIVS 表示列上的授权,用户和PUBLIC是被授予者
 

select * from dba_col_privs
ALL_COL_PRIVS_MADE  表示列上的授权,用户是属主和被授予者
 

select * from all_col_privs_made

ALL_COL_RECD 表示列上的授权,用户和PUBLIC是被授予者

ALL_TAB_PRIVS 表示对象上的授权,用户是PUBLIC或被授予者或用户是属主
 

ALL_TAB_PRIVS_MADE  表示对象上的权限,用户是属主或授予者

ALL_TAB_PRIVS_RECD  表示对象上的权限, 用户是PUBLIC或被授予者

DBA_COL_PRIVS  数据库列上的所有授权

DBA_ROLE_PRIVS  显示已授予用户或其他角色的角色

DBA_SYS_PRIVS  已授予用户或角色的系统权限

DBA_TAB_PRIVS  数据库对象上的所有权限

ROLE_ROLE_PRIVS  显示已授予用户的角色

select * from role_role_privs;--role_role_privs;指授预此角色的角色
--测试上述 --经测试role_role_privs是授预此角色的角色
create role zxy_role;
create role zxy_role_1;
grant zxy_role_1 to zxy_role;
 

ROLE_SYS_PRIVS 显示通过角色授予用户的系统权限
select * from role_sys_privs;--显示角色所属的系统权限
--测试
grant create table to zxy_role;
 

ROLE_TAB_PRIVS 显示通过角色授予用户的对象权限
select * from ROLE_TAB_PRIVS;--显示角色所属的对象权限
--测试
grant select  on scott.emp to zxy_role;
 

SESSION_PRIVS  显示用户现在可利用的所有系统权限
select * from session_privs;--显示用户可以使用的系统权限
 

USER_COL_PRIVS 显示列上的权限,用户是属主、授予者或被授予者
select * from user_col_privs

USER_COL_PRIVS_MADE 显示列上已授予的权限,用户是属主或授予者

USER_COL_PRIVS_RECD  显示列上已授予的权限,用户是属主或被授予者

USER_ROLE_PRIVS  显示已授予给用户的所有角色
select * from dba_role_privs;--显示已经给用户授予的角色
--测试
grant zxy_role to scott;--显示给scott用户授予的角色

USER_SYS_PRIVS  显示已授予给用户的所有系统权限

USER_TAB_PRIVS 显示已授予给用户的所有对象权限

USER_TAB_PRIVS_MADE  显示已授予给其他用户的对象权限,用户是属主

select * from USER_TAB_PRIVS_MADE ma where ma.grantee='SCOTT';--显示授予者授予给被授予者的系统和对象权限
--测试
grant  execute on SYS.BLASTN_MATCH to scott;--对象权限
grant  select any table to scott;--系统权限 --经测无系统权限,仅显示对象权限
 

USER_TAB_PRIVS_RECD 显示已授予给其他用户的对象权限,用户是被授予者'
select * from user_TAB_PRIVS_RECD m where table_name='T_ONLY';--显示
--测试
grant select on t_only to scott;

相关内容