1. 程式人生 > >實驗理解ADMIN OPTION和GRANT OPTION的用法

實驗理解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

_b建表許可權

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。