| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION username SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT RESET SESSION AUTHORIZATION
這條命令把目前 SQL 會話環境裡的會話用戶標識和目前用戶標識設置為 username。 這個用戶名可以寫成一個標識符或者一個字串文本。 使用這個命令,我們可以臨時變成一個非特權用戶,稍後再切換回超級用戶。
會話用戶標識符一開始設置為(可能經過認證的)客戶端提供的用戶名。 目前用戶標識符通常等於會話用戶標識符, 但是可能在 "setuid" 的環境裡或者類似的機制裡臨時改變。 目前用戶標識符和權限檢查相關。
只有在初始會話用戶(認證了的用戶)有超級用戶權限的時候,會話用戶標識符才能改變。 否則,只有在指定了被認證的用戶名的情況下,系統才接受該命令。
SESSION 和 LOCAL 修飾詞和普通 SET 命令裡的作用相同。
DEFAULT 和 RESET 形式重置會話和目前用戶標識符為初始認證的用戶名。這些形式可以為任何用戶執行。
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