<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # SET ROLE ## Name SET ROLE?--?在當前會話中設置當前用戶標識 ## Synopsis ``` SET [ SESSION | LOCAL ] ROLE _role_name_ SET [ SESSION | LOCAL ] ROLE NONE RESET ROLE ``` ## 描述 這條命令將當前會話的當前用戶標識為`_role_name_`。 角色名可以寫成表識符或者是字符串文本。在`SET ROLE`之后, SQL命令的權限檢查就是針對這個用戶了,就像當初用這個用戶登錄一樣。 當前會話的用戶必須是指定的`_role_name_` 角色的成員。但超級用戶可以選擇任何角色。 `SESSION`和`LOCAL`修飾詞的作用和普通的[SET](#calibre_link-675)命令一樣。 `NONE`和`RESET`形式重置當前用戶標識為當前會話用戶標識符。任何用戶都可以執行這種形式。 ## 注意 使用這條命令,它可能會增加一個用戶的權限,也可能會限制一個用戶的權限。 如果會話用戶的角色有`INHERITS`屬性,那么它自動擁有它能`SET ROLE` 變成的角色的所有權限;在這種情況下,`SET ROLE`實際上是刪除了所有直接賦予會話用戶的權限, 以及它的所屬角色的權限,只剩下指定角色的權限。另一方面,如果會話用戶的角色有 `NOINHERITS`屬性,`SET ROLE`刪除直接賦予會話用戶的權限,而獲取指定角色的權限。 實際上,如果一個超級用戶`SET ROLE`為一個非超級用戶,它會失去其超級用戶權限。 `SET ROLE`有和[SET SESSION AUTHORIZATION](#calibre_link-508)類似的效果, 但是其中涉及的權限檢查有區別。還有,`SET SESSION AUTHORIZATION` 決定其后有什么角色可以執行`SET ROLE`命令,而用`SET ROLE` 并不修改稍后的`SET ROLE`可以設置的角色集。 `SET ROLE`并不如同角色的[ALTER ROLE](#calibre_link-17)設置所聲明的那樣處理會話變量; 這只在登陸時發生。 `SET ROLE`不能在`SECURITY DEFINER`函數內使用。 ## 例子 ``` SELECT SESSION_USER, CURRENT_USER; session_user | current_user --------------+-------------- peter | peter SET ROLE 'paul'; SELECT SESSION_USER, CURRENT_USER; session_user | current_user --------------+-------------- peter | paul ``` ## 兼容性 PostgreSQL允許標識符語法(`"rolename"`), 而SQL標準要求角色名字寫成字符串文本。 SQL并不允許在事務里面執行這條命令; PostgreSQL并未做此限制,因為沒有理由限制。 `SESSION`和`LOCAL`修飾詞是PostgreSQL 的擴展,還有`RESET`語法也一樣。 ## 又見 [SET SESSION AUTHORIZATION](#calibre_link-508)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看