欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

USER/ROLE/PRIVILEGE 常用的VIEW 有大用


USER 存放的VIEW

SELECT USERNAME, PROFILE, ACCOUNT_STATUS FROM DBA_USERS;


系統权限存放的VIEW

select * from system_privilege_map

DBA_USERS               显示用户的信息

DBA_ROLES               显示数据库中所有角色

DBA_ROLE_PRIVS    显示用户及其角色

DBA_SYS_PRIVS       显示被授予系统权限的用户

DBA_TAB_PRIVS       显示用户及他们在表上的权限

 

USER_SYS_PRIVS        當前用戶擁有的系統權限

 USER_TAB_PRIVS        當前用戶擁有的對象權限

 USER_ROLE_PRIVS     當前用戶擁有的角色


 ROLE_SYS_PRIVS          角色擁有的系統權限

 ROLE_TAB_PRIVS         角色擁有的對象權限





--(13)由(12),(13)可推估 revoke select on eis.eis_log from apps 但仍可在apps 下查看eis_log 表的內容  

--是因為user apps 具有DBA ROLE 中 SELECT ANY TABLE ,即使revoke 某一表但都會無效.

--接下來驗證

connect system/apps@t-js;

grant DBA TO KEVIN;

--如已開啟connect kevin/kevin@t-js 必需關閉

connect kevin/kevin@t-js;

select * from eis.eis_log; -- ok 可以取出資料

--(14)連接到user eis, revoke kevin 可以查看eis 的表(eis_log) 

connect eis/eis@t-js;

grant select on eis_log to kevin;

revoke select on eis_log from kevin;

--(15)重新連接到kevin 確認是否能看到eis.eis_log 表的內容

connect kevin/kevin@t-js;

select * from eis.eis_log;  --ok

--斷開再重連仍然是ok 因此原因就出在APPS 具有select any table 權限


普通分类: