1、with admin option 用於系統權限授權,with grant option 用於對象授權。 2、給一個用戶授予系統權限帶上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 表名 to A with grant option;,A用戶把此權限授予B,但管理員收回A的權限時,B的權限也會失效,但管理員不可以直接收回B的SELECT ON TABLE 權限。 執行授權語句報錯(ora-01031,ora-01929)時,可參考一下。 相同點: - 兩個都可以既可以賦予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 權限 結果: EMI 的權限也被撤消了 |