ALTER USER(7)

NAME
ALTER USER - 改變數據庫使用者帳號

SYNOPSIS

ALTER USER name [ [ WITH ] option [ ... ] ]
where option can be:
    [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER
    | VALID UNTIL 'abstime'
ALTER USER name RENAME TO newname
ALTER USER name SET parameter { TO | = } { value | DEFAULT }
ALTER USER name RESET parameter

DESCRIPTION 描述

ALTER USER 用於更改使用者的 PostgreSQL 帳號的屬性。 沒有在該命令中出現的屬性保持原值。

 這條命令模式中的第一個變種修改某些全局使用者權限和認証設置。 （見下文獲取細節。）只有數據庫超級使用者可以用這條命令改變這些權限和使口令失效。普通使用者只能修改它們自己的口令。

 第二個變種改變使用者的名字。只有數據庫超級使用者才能重新命名使用者帳戶。 當前會話使用者不能重命名。（如果想這麼幹，先用另外一個使用者賬號連接。）

 第三和第四個變種修改使用者會話的特定配置變量的預設值。 當該使用者隨後啟動一個新的會話時，聲明的數值將成為會話的預設，覆蓋 任何出現在 postgresql.conf 裏，或者從 postmaster 命令行接收到的設置。 普通使用者可以修改它們自己的會話預設。超級使用者可以修改任何使用者的預設。

PARAMETERS 參數

name
     想進行屬性更改的使用者名字。

password
     此帳號所使用的新口令。

ENCRYPTED

UNENCRYPTED
     這些關鍵字控制口令是否以加密形式存在 pg_shadow 裏。 （參閱 CREATE USER [create_user(7)] 獲取這個選項的更多信息。）

CREATEDB

NOCREATEDB
     這個子句定義該使用者創建數據庫的能力。 如果聲明了CREATEDB，該使用者可以創建她自己的數據庫。 用NOCREATEDB將剝奪一個使用者創建數據庫的能力。

CREATEUSER

NOCREATEUSER
     這個子句決定一個使用者能否創建新使用者。 這個選項同樣還令該使用者成為超級使用者，可以超越所有訪問限制。

abstime
     該使用者帳號口令的過期的日期（和可選的時間）。 要設置一個口令從不過期，可以用'infinity'。

newname
     使用者的新名字。

parameter

value
     把該使用者特定的配置變量的會話預設設置為給定的數值。 如果 value 為 DEFAULT 或者使用了等效的 RESET，那麼刪除使用者相關的變量， 並且該使用者將在新會話中繼承預設設置。使用 RESET ALL 清除所有設置。
     參閱 SET [set(7)] 和 Section 16.4 ``Run-time Configuration'' 獲取有關可用變量和數值的更多信息。

NOTES 注意

 使用 CREATE USER [create_user(7)] 創建新使用者和 DROP USER [drop_user(7)] 刪除使用者。

ALTER USER 無法改變一個使用者的組的成員性。 用 ALTER GROUP [alter_group(7)] 實現這個目地。

 使用 ALTER DATABASE [alter_database(7)]，我們還可能把一個會話預設和某個數據庫綁定起來，而不是和某個使用者綁定。

EXAMPLES 例子

 更改一使用者口令：

ALTER USER davide WITH PASSWORD 'hu8jmn3';

 更改一使用者有效期：

ALTER USER manuel VALID UNTIL 'Jan 31 2030';

 更改一使用者有效期， 聲明其權限應該在用比UTC早一小時的時區記時的 2005 年 5 月 4 日正午失效

ALTER USER chris VALID UNTIL 'May 4 12:00:00 2005 +1';

 令使用者永遠有效：

ALTER USER fred VALID UNTIL 'infinity';

 賦予一使用者創建新使用者和新數據庫的權限：

ALTER USER miriam CREATEUSER CREATEDB;

COMPATIBILITY 相容性

ALTER USER 語句是 PostgreSQL 擴展。SQL 標準將使用者的定義交給實現完成。

SEE ALSO 參見
CREATE USER [create_user(7)], DROP USER [drop_user(l)], SET [set(l)]

譯者
Postgresql 中文網站 何偉平 <laser@pgsqldb.org>