table of contents
SET SESSION AUTHORIZATION(7) | SQL Commands | SET SESSION AUTHORIZATION(7) |
NAME¶
SET SESSION AUTHORIZATION - 為當前會話設定會話使用者識別符號和當前使用者識別符號
SYNOPSIS¶
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION username SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT RESET SESSION AUTHORIZATION
DESCRIPTION 描述¶
這條命令把當前 SQL 會話環境裡的會話使用者標識和當前使用者標識設定為 username。 這個使用者名稱可以寫成一個識別符號或者一個字串文字。 使用這個命令,我們可以臨時變成一個非特權使用者,稍後再切換回超級使用者。
會話使用者識別符號一開始設定為(可能經過認證的)客戶端提供的使用者名稱。
當前使用者識別符號通常等於會話使用者識別符號,
但是可能在 "setuid"
的環境裡或者類似的機制裡臨時改變。
當前使用者識別符號和許可權檢查相關。
只有在初始會話使用者(認證了的使用者)有超級使用者許可權的時候,會話使用者識別符號才能改變。
否則,只有在指定了被認證的使用者名稱的情況下,系統才接受該命令。
SESSION 和 LOCAL 修飾詞和普通 SET [set(7)] 命令裡的作用相同。
DEFAULT 和 RESET 形式重置會話和當前使用者識別符號為初始認證的使用者名稱。這些形式可以為任何使用者執行。
EXAMPLES 例子¶
SELECT SESSION_USER, CURRENT_USER;
session_user | current_user --------------+--------------
peter | peter SET SESSION AUTHORIZATION 'paul'; SELECT SESSION_USER, CURRENT_USER;
session_user | current_user --------------+--------------
paul | paul
COMPATIBILITY 相容性¶
SQL 標準允許一些其它的表示式出現在文字 username 的位置上,不過這個東西實際上並不重要。 PostgreSQL 允許識別符號語法 ("username"),而 SQL 不允許。 SQL 不允許在一個事務的過程中用這條命令; PostgreSQL 沒有這個限制,因為沒有什麼理由不允許這樣用。 標準中表示執行這條命令的許可權要求是具體實現定義的。
譯者¶
Postgresql 中文網站 何偉平 <laser@pgsqldb.org>
跋¶
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
2003-11-02 | SQL - Language Statements |