.\" auto-generated by docbook2man-spec $Revision: 1.1 $ .TH "SET SESSION AUTHORIZATION" "7" "2003-11-02" "SQL - Language Statements" "SQL Commands" .SH NAME SET SESSION AUTHORIZATION \- 爲當前會話設置會話用戶標識符和當前用戶標識符 .SH SYNOPSIS .sp .nf SET [ SESSION | LOCAL ] SESSION AUTHORIZATION \fIusername\fR SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT RESET SESSION AUTHORIZATION .sp .fi .SH "DESCRIPTION 描述" .PP 這條命令把當前 SQL 會話環境裏的會話用戶標識和當前用戶標識設置爲 username。 這個用戶名可以寫成一個標識符或者一個字串文本。 使用這個命令,我們可以臨時變成一個非特權用戶,稍後再切換回超級用戶。 .PP 會話用戶標識符一開始設置爲(可能經過認證的)客戶端提供的用戶名。 當前用戶標識符通常等於會話用戶標識符, 但是可能在 "setuid" 的環境裏或者類似的機制裏臨時改變。 當前用戶標識符和權限檢查相關。 .PP 只有在初始會話用戶(\fI認證了的用戶\fR)有超級用戶權限的時候,會話用戶標識符才能改變。 否則,只有在指定了被認證的用戶名的情況下,系統才接受該命令。 .PP SESSION 和 LOCAL 修飾詞和普通 SET [\fBset\fR(7)] 命令裏的作用相同。 .PP DEFAULT 和 RESET 形式重置會話和當前用戶標識符爲初始認證的用戶名。這些形式可以爲任何用戶執行。 .SH "EXAMPLES 例子" .sp .nf 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 .sp .fi .SH "COMPATIBILITY 兼容性" .PP SQL 標準允許一些其它的表達式出現在文本 username 的位置上,不過這個東西實際上並不重要。 PostgreSQL 允許標識符語法 ("username"),而 SQL 不允許。 SQL 不允許在一個事務的過程中用這條命令; PostgreSQL 沒有這個限制,因爲沒有什麼理由不允許這樣用。 標準中表示執行這條命令的權限要求是具體實現定義的。 .SH "譯者" .B Postgresql 中文網站 .B 何偉平 .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR