Provided by: manpages-zh_1.6.3.2-1_all bug

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