實驗理解ADMIN OPTION和GRANT OPTION的用法
使用GRANT賦予使用者許可權的時候通常有ADMIN OPTION和GRANT OPTION這兩個OPTION。下面使用簡單的實驗來體會下這兩種授權的用途。
一、ADMIN OPTION引數
實驗:
1. 建立測試使用者user_a和user_b:
2. 預設情況下,user_a和user_b是沒有建表許可權:
3.
SYS賬戶GRANT CREATE TABLE許可權給user_a,但user_a則是沒有許可權授予user_b建表許可權:
4. SYS賬戶GRANT CREATE TABLE許可權給user_a,同時帶上WITH ADMIN OPTION,此時user_a可以授予user
5. SYS賬戶收回user_a的CREATE TABLE許可權:
6. 此時user_b仍可具有CREATE TABLE許可權,儘管這裡報錯:
注:這個錯是說user_b沒有預設表空間USERS的使用許可權,並不是沒有建表許可權,此時需要SYS賬戶使用GRANT UNLIMITED TABLESPACE TO user_b或ALTER USER user_b quota 100m on USERS讓user_b使用者可以使用USERS表空間:
總結:
1. 帶有WITH ADMIN OPTION的許可權授予方式,可傳遞授權。
2. 帶有WITH ADMIN OPTION的許可權授予方式,當使用REVOKE收回許可權時,傳遞的授權並不會自動收回。
3. ADMIN OPTION用於系統許可權,system privilege,例如CREATE TABLE。
二、GRANT OPTION
實驗:
1. 授予user_a和user_b建立session的許可權,但用user_a查詢dcsopen的t1表時提示無此許可權:
2. SYS賬戶使用WITH GRANT OPTION授予user_a查詢dcsopen.t1表許可權:
此時user_a可以查詢表:
3. 使用user_a授予user_b查詢dcsopen.t1表許可權:
4. SYS賬戶收回user_a的查詢dcsopen.t1表的許可權:
5. 使用user_b使用者查詢dcsopen.t1表時提示無許可權
總結:
1. 使用WITH GRANT OPTION的許可權授予方式,可傳遞授權。
2. 使用WITH GRANT OPTION的許可權授予方式,當使用REVOKE收回許可權時,傳遞的授權會自動收回。
3. GRANT OPTION用於物件許可權,object privilege,例如SELECT ON TABLE。