Oracle对象与系统权限小测
--系统权限表select * from dba_sys_privs p where p.privilege like
--系统权限表
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;