Oracle 許可權相關

2021-06-28 15:02:31 字數 2781 閱讀 6204

一、查詢自己角色

只能查詢自己具有的許可權,不包括授予的角色,所以也就不能查詢通過角色授予的許可權。

select * from dba_sys_privs where grantee = 'username';  可以查詢某個user擁有哪些系統許可權 (sys使用者)

select * from user_sys_privs 可以查詢自己擁有哪些系統許可權 

查詢乙個使用者的所有系統許可權(包含角色的系統許可權) (dba執行)

select privilege from dba_sys_privs where grantee='username'

union

select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='username');

使用者自己查詢(用dba執行存在重複許可權的問題,例如administer any sql tuning set 存在於dba和sys裡面。)

select * from user_sys_privs 

union 

select * from role_sys_privs;

需要使用

select privilege from user_sys_privs

union

select privilege from role_sys_privs;

二、角色管理

1、通過role來簡化賦權操作,每個role含有若干項系統許可權。role包括系統預定義和自定義兩種。

select

* from

dba_roles; --

查詢當前所有

role

列表,包括自定義

select

* from

dba_role_privs; 

--查詢某使用者的

role

許可權(dba執行)

select

* from user

_role_privs; --查詢自己的role許可權(與dba_role_privs欄位不一致)

select

* from

role_sys_privs; 

--查詢當前使用者的

role,及其

所包含的系統許可權

三、授權管理

1、使用grant語句向使用者賦予系統許可權: 

grant system_privilege to user_name [with admin option];

注:使用with admin option語句後,使使用者可以將相同許可權賦給其他使用者。

2、使用revoke語句撤銷系統許可權: 

revoke system_privilege from user_name;

注:當刪除a使用者的許可權時,通過a賦予b的許可權不會消失。

3、系統許可權**:系統許可權只能由dba使用者**

命令:sql> revoke connect, resource from username;

系統許可權無級聯,即a授予b許可權,b授予c許可權,如果a收回b的許可權,c的許可權不受影響;系統許可權可以跨使用者**,即a可以直接收回c使用者的許可權。

4、實體許可權分類:select, update, insert, alter, index, delete, all  //all包括所有許可權

execute  //執行儲存過程許可權

5. 將表的操作許可權授予全體使用者:

sql> grant all on tablename to public;  // public表示是所有的使用者,這裡的all許可權不包括drop。

[實體許可權資料字典]:

sql> select owner, table_name from all_tables; // 使用者可以查詢的表

sql> select table_name from user_tables;  // 使用者建立的表

sql> select grantor, table_schema, table_name, privilege from all_tab_privs; // 獲權可以訪問的表(被授權的)

sql> select grantee, owner, table_name, privilege from user_tab_privs;   // 授出許可權的表(授出的許可權)

四、with admin option 和 with grant option

with admin option 用於系統許可權授權,with grant option 用於物件授權。

給乙個使用者授予系統許可權帶上with admin option 時,此使用者可把此系統許可權授予其他使用者或角色,但收回這個使用者的系統許可權時,這個使用者已經授予其他使用者或角色的此系統許可權不會因傳播無效,如授予a系統許可權create session with admin option,然後a又把create session許可權授予b,但管理員收回a的create session許可權時,b依然擁有create session的許可權,但管理員可以顯式收回b create session的許可權,即直接revoke create session from b.

with grant option用於物件授權時,被授予的使用者也可把此物件許可權授予其他使用者或角色,不同的是但管理員收回用with grant option授權的使用者物件許可權時,許可權會因傳播而失效,如grant select on table with grant option to a,a使用者把此許可權授予b,但管理員收回a的許可權時,b的許可權也會失效,但管理員不可以直接收回b的select on table 許可權。

Oracle相關許可權

1.建立使用者 sql create user test identifiedbytest create user test identified by test 2.賦許可權 sql grant createsessiontotest 賦可以登入的許可權 grantunlimited tables...

oracle 許可權相關內容總結

1.系統許可權管理 1.1 3個預設使用者 oracle 9i sys change on install as sysdba sqlplus as sysdba system manager scott triger oracle 10g以上 sys 安裝的時候設定.as sysdba syste...

oracle 使用者 角色 許可權相關資料字典

1 三者的字典表 1.1 使用者 select from dba users select from all users select from user users 1.2 角色 select from dba roles 1.3 許可權 分為系統許可權與物件許可權 select from sys...