W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
SET SESSION AUTHORIZATION — 設(shè)置當(dāng)前會話的會話用戶標(biāo)識符和當(dāng)前用戶標(biāo)識符
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION user_name
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
RESET SESSION AUTHORIZATION
這個命令把當(dāng)前 SQL 會話的會話用戶標(biāo)識符和當(dāng)前用戶標(biāo)識符設(shè)置為 user_name
。 用戶名可以被寫成一個標(biāo)識符或者一個字符串。例如,可以使用這個 命令臨時成為一個無特權(quán)用戶并且稍后切換回來成為一個超級用戶。
會話用戶標(biāo)識符初始時被設(shè)置為客戶端提供的(可能已認(rèn)證的)用戶名。 當(dāng)前用戶標(biāo)識符通常等于會話用戶標(biāo)識符,但是可能在 SECURITY DEFINER
函數(shù)和類似機(jī)制的環(huán)境中臨時更改。 也可以用SET ROLE更改它。當(dāng)前用戶標(biāo)識符與 權(quán)限檢查相關(guān)。
會話用戶標(biāo)識符只能在初始會話用戶 已認(rèn)證用戶具有超級用戶特權(quán)時被更改。 否則,只有該命令指定已認(rèn)證用戶名時才會被接受。
SESSION
和LOCAL
修飾符發(fā)揮的作用和常規(guī) SET命令一樣。
DEFAULT
和RESET
形式把會話用戶標(biāo)識符和 當(dāng)前用戶標(biāo)識符重置為初始的已認(rèn)證用戶名。這些形式可以由任何用戶執(zhí)行。
SET SESSION AUTHORIZATION
不能在一個 SECURITY DEFINER
函數(shù)中使用。
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
SQL 標(biāo)準(zhǔn)允許一些其他表達(dá)式出現(xiàn)在文本 user_name
的位置上,但是實際上這些 選項并不重要。PostgreSQL允許標(biāo) 識符語法("
),而 SQL 標(biāo)準(zhǔn)不允許。 SQL 不允許在事務(wù)中使用這個命令,而 PostgreSQL并不做此限 制,因為并沒有原因需要這樣做。和username
"RESET
語法 一樣,SESSION
和 LOCAL
修飾符是一種 PostgreSQL擴(kuò)展。
標(biāo)準(zhǔn)把執(zhí)行這個命令所需的特權(quán)留給實現(xiàn)定義。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: