Sep 17, 2008

with admin option 和 with grant option

在賦予user 許可權或者role 時,常常會用到with admin option 和with grant option,
而在使用中,可能會很容易出現混淆的情況,現把他們的相同點和不同點總結如下:
相同點:
- 兩個都可以既可以賦予user 許可權時使用,也可以在賦予role 時用
GRANT CREATE SESSION TO emi WITH ADMIN OPTION;
GRANT CREATE SESSION TO role WITH ADMIN OPTION;
GRANT role1 to role2 WITH ADMIN OPTION;
GRANT select ON customers1 TO bob WITH GRANT OPTION;
GRANT select ON customers1 TO hr_manager(role) WITH GRANT OPTION;

- 兩個受賦予者,都可以把許可權或者role 再賦予other users
- 兩個option 都可以對DBA 和APP ADMIN 管理帶來方便性,但同時,都帶來不安全的因素
不同點:
- with admin option 只能在賦予 system privilege 的時使用
- with grant option 只能在賦予 object privilege 的時使用
- 移除帶有admin option 的system privileges 時,連帶的許可權將保留
例如:
1. DBA 給了CREATE TABLE 系統許可權給JEFF WITH ADMIN OPTION
2. JEFF CREATES TABLE
3. JEFF grants the CREATE TABLE 系統許可權給EMI
4. EMI CREATES A table
5. DBA 撤銷CREATE TABLE 系統許可權從JEFF
結果:
JEFF'S TABLE 依然存在,但不能建立新的TABLE 了
EMI'S TABLE 依然存在,他還保留著CREATE TABLE 系統許可權。
- 移除帶有grant option 的object privileges 時,連帶的許可權也將移除
例如:
1. JEFF 給了SELECT object privileges 在EMP 上 WITH ADMIN OPTION
2. JEFF 給了SELECT 許可權在EMP 上 TO EMI
3. 後來,移除JEFF的SELECT 許可權

0 意見: