全部產品
Search
文件中心

PolarDB:SET ROLE

更新時間:Jul 06, 2024

設定當前會話的目前使用者標識符。

文法

SET ROLE { rolename | NONE }

說明

此命令將當前 SQL 會話內容相關的目前使用者標識符設定為 rolename。在 SET ROLE 之後,執行 SQL 命令的許可權檢查,就好像指定的角色是最初登入的角色一樣。

指定的 rolename 必須是當前會話使用者所屬的角色。

注釋

可以使用此命令添加特權或者限制某個使用者的特權。如果會話使用者角色具有 INHERITS 屬性,則它將自動擁有可執行 SET ROLE 以設定為的每個角色的所有特權;在這種情況下,SET ROLE 有效地刪除了直接分配給會話使用者及其所屬其他角色的所有特權,只留下指定角色可用的特權。另一方面,如果會話使用者角色具有 NOINHERITS 屬性,則 SET ROLE 將刪除直接分配給會話使用者的特權,而擷取對指定角色可用的特權。特別是,當超級使用者選擇執行 SET ROLE 以將角色設定為非超級使用者角色時,該超級使用者將失去其超級使用者特權。

樣本

使用者 mary 具有 admins 角色的身份:

SET ROLE admins;

使用者 mary 恢複了其自己的身份:

SET ROLE NONE;