Oracle启用、禁用角色
SET ROLE
當用戶登錄到Oracle數據庫,數據庫啟用用戶明確授予的所有權限和默認角色的所有權限。在一個會話中,用戶或者是應用程序可以通過SET ROLE語句來啟用、禁用當前會話已經啟用的角色。
用戶不能同時啟用超過148個用戶定義的角色。(用下面的語句來獲得最多可以啟用的角色數:show parameter max_enabled;)參數max_enabled_roles決定了用戶可以最多啟用的角色數。
?
說明:
對大多數角色來說,用戶是不能啟用和禁用角色的,除非這些角色是直接或通過別的角色間接授予用戶的。
可以通過查詢SESSION_ROLES數據字典視圖來查看當前啟用的角色。
用戶必須有啟用、禁用角色的權限。
role子句
?????? 啟用指定的當前會話中一個或多個角色。當前會話中所有沒有指定的角色都是禁用的。在identified by子句中,為一個角色設置密碼。如果一個角色有密碼,那么用戶必須指定密碼來啟用角色。
?????? 限制:用戶不能指定全局的角色來啟用。全局角色在用戶登錄的時候已經被啟用,不能被重新啟用。
?
ALL Clause
Specify ALL to enable all roles granted toyou for the current session except those optionally listed in the EXCEPTclause.
Roles listed in the EXCEPT clause must beroles granted directly to you. They cannot be roles granted to you throughother roles.
If you list a role in the EXCEPT clausethat has been granted to you both directly and through another role, then therole remains enabled by virtue of the role to which it has been granted.
?
all子句
?????? 使用all子句來啟用當前會話中所有的授權給用戶的角色,除了那些在except語句中出現的角色。
出現在except子句中的角色必須是直接授予用戶的角色,不能是通過別的角色間接授予的角色。
如果那些出現在except子句中的角色被授予給別的角色的話,那么這些角色任然有效。
限制:用戶不能通過all子句來啟用那些直接授予用戶的有密碼的角色;這個子句只適用于不需要任何身份驗證的角色。
?
none子句
使用none子句來禁用當前會話中所有的角色,包括默認角色。
例子:
使用下面的語句來啟用密碼為warehouse的角色dw_manager:
SET ROLE dw_manager IDENTIFIED BY warehouse;
使用下面的語句來啟用當前會話中所有的角色:
SET ROLE ALL;
使用下面的語句啟用除了角色dw_manager之外的所有的角色:
SET ROLE ALL EXCEPT dw_manager;
使用下面的語句來禁用當前會話中所有的角色:
SET ROLE NONE;
?
?
總結
以上是生活随笔為你收集整理的Oracle启用、禁用角色的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORA-01123:无法启动联机备份;未
- 下一篇: Oracle约束的关键字Enable/D