<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # ALTER ROLE ## Name ALTER ROLE?--?修改一個數據庫角色 ## Synopsis ``` ALTER ROLE _name_ [ [ WITH ] _option_ [ ... ] ] 這里的 `_option_` 可以是: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | CONNECTION LIMIT _connlimit_ | [ ENCRYPTED | UNENCRYPTED ] PASSWORD '_password_' | VALID UNTIL '_timestamp_' ALTER ROLE _name_ RENAME TO _new_name_ ALTER ROLE _name_ [ IN DATABASE _database_name_ ] SET _configuration_parameter_ { TO | = } { _value_ | DEFAULT } ALTER ROLE { _name_ | ALL } [ IN DATABASE _database_name_ ] SET _configuration_parameter_ FROM CURRENT ALTER ROLE { _name_ | ALL } [ IN DATABASE _database_name_ ] RESET _configuration_parameter_ ALTER ROLE { _name_ | ALL } [ IN DATABASE _database_name_ ] RESET ALL ``` ## 描述 `ALTER ROLE`修改一個PostgreSQL角色的屬性。 這個命令的第一種形式可以修改很多[CREATE ROLE](#calibre_link-10)里面聲明的角色屬性。 (除了增加和刪除成員關系的選項之外,所有可能的屬性都有介紹;使用[GRANT](#calibre_link-19)和[REVOKE](#calibre_link-20)可以實現前述兩件事。) 沒有在命令里提到的屬性維持它們以前的設置。數據庫超級用戶可以給任何角色改變任何設置。 擁有`CREATEROLE`權限的角色可以修改任意這些設置,但是只能給非超級用戶和非復制用戶角色設置。 普通的角色只能修改它們自己的口令。 第二種形式可以修改角色的名稱。數據庫超級用戶可以修改任何角色的名稱。 擁有`CREATEROLE`權限的角色可以給非超級用戶角色進行重命名。 當前會話的用戶的角色是不能改名的。(如果一定需要這么做,則必須以另外一個用戶的身份連接系統。) 因為`MD5`加密的口令使用角色名字作為加密的鹽粒,所以, 如果口令是`MD5`加密的,那么給一個角色改名會清空其口令。 其他的形式更改一個角色的會話配置參數默認值,該值要么針對所有的數據庫, 要么使用`IN DATABASE`選項,僅針對指定的數據庫。 如果是未指定角色名稱而是使用了`ALL`選項,則所有角色的相關參數都會更改。 當同時使用`ALL`和`IN DATABASE`選項時,就等同于使用`ALTER DATABASE ... SET ...`。 當角色隨后開啟一個新會話,指定的值變成了會話的默認值,這些參數值會覆蓋任何`postgresql.conf`中的設置或者從`postgres` 命令行接收到的參數值。 這僅在登錄時發生;執行[SET ROLE](#calibre_link-21)或者[SET SESSION AUTHORIZATION](#calibre_link-508)不會引起新的配置值設置。 為所有數據庫所設定的參數會被附加到一個角色上的特定數據庫的參數所覆蓋。為指定數據庫或指定角色所設定的參數會覆蓋為所有角色設定的參數。 超級用戶可以更改任何一個會話默認值。有`CREATEROLE`權限的角色可以為非超級用戶角色更改默認值。 普通的角色只能為自己設置默認值。 某些配置變量不能這樣設置,或者只要超級用戶才能執行。 只有超級用戶才能為所有數據庫中的所有角色更改參數設置。 ## 參數 `_name_` 需要修改屬性的角色的名稱。 `SUPERUSER``NOSUPERUSER` `CREATEDB` `NOCREATEDB` `CREATEROLE` `NOCREATEROLE` `CREATEUSER` `NOCREATEUSER` `INHERIT` `NOINHERIT` `LOGIN` `NOLOGIN` `REPLICATION` `NOREPLICATION` `CONNECTION LIMIT` `_connlimit_` `PASSWORD` `_password_` `ENCRYPTED` `UNENCRYPTED` `VALID UNTIL` '`_timestamp_`' 這些選項修改由[CREATE ROLE](#calibre_link-10)初始設置的屬性。 要獲取更多詳細信息,請參閱`CREATE ROLE`參考頁。 `_new_name_` 角色的新名字。 `_database_name_` 要設置配置變量的數據庫的名稱。 `_configuration_parameter_` `_value_` 把該角色指定的參數缺省值設置為給定值。如果`_value_`是`DEFAULT`或是相當于使用`RESET`, 指定角色的參數值會被清除,這樣該角色將在新的會話里繼承系統級的參數缺省值。 使用`RESET ALL`會清除所有角色相關的設置。 使用`SET FROM CURRENT`會將會話的當前參數值保存為特定角色的缺省參數值。 如果使用了`IN DATABASE`選項,則僅僅指定的角色和數據庫可以設置或者清除相關參數。 特定角色的參數設置僅僅在登錄時起效;[SET ROLE](#calibre_link-21)和[SET SESSION AUTHORIZATION](#calibre_link-508)不能進行特定角色的參數設置。 參閱[SET](#calibre_link-675)和[Chapter 18](#calibre_link-500)獲取有關允許的參數名稱和數值的更多信息。 ## 注意 使用[CREATE ROLE](#calibre_link-10)增加新角色,使用[DROP ROLE](#calibre_link-18)刪除舊角色。 `ALTER ROLE`不能改變角色的成員關系。可以使用[GRANT](#calibre_link-19)和[REVOKE](#calibre_link-20)做這個事情。 使用這個命令指定一個未加密的密碼時必須小心,因為密碼將以明文方式傳送到服務器,并且可能被客戶端命令歷史記錄或者被服務器日志記錄。 [psql](#calibre_link-23)包含一個可以用來安全修改角色密碼的`\password`命令,這個命令不會暴露明文的密碼。 也可以把會話缺省參數值與數據庫綁定而不是與角色綁定;參閱[ALTER DATABASE](#calibre_link-1431)。 如果有沖突,那么指定角色加數據庫的參數設置將覆蓋指定角色的參數設置,而后者又可以覆蓋指定數據庫的參數設置。 ## 例子 改變一個角色的口令: ``` ALTER ROLE davide WITH PASSWORD 'hu8jmn3'; ``` 清除一個角色的口令: ``` ALTER ROLE davide WITH PASSWORD NULL; ``` 改變口令失效的日期,聲明口令應該在2015年5月4日中午失效,時區比UTC早一個小時: ``` ALTER ROLE chris VALID UNTIL 'May 4 12:00:00 2015 +1'; ``` 設置一個口令永久有效: ``` ALTER ROLE fred VALID UNTIL 'infinity'; ``` 授予一個角色創建其它角色和新數據庫的權限: ``` ALTER ROLE miriam CREATEROLE CREATEDB; ``` 給一個角色設置非缺省的[maintenance_work_mem](#calibre_link-1150)參數值: ``` ALTER ROLE worker_bee SET maintenance_work_mem = 100000; ``` 給一個角色設置非缺省的、指定數據庫的[client_min_messages](#calibre_link-1448)參數值: ``` ALTER ROLE fred IN DATABASE devel SET client_min_messages = DEBUG; ``` ## 兼容性 `ALTER ROLE`語句是一個PostgreSQL擴展。 ## 參見 [CREATE ROLE](#calibre_link-10), [DROP ROLE](#calibre_link-18), [ALTER DATABASE](#calibre_link-1431), [SET](#calibre_link-675)
                  <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>

                              哎呀哎呀视频在线观看