Scroll to navigation

ALTER USER(7) SQL Commands 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 引數


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

此帳號所使用的新口令。

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

這個子句定義該使用者建立資料庫的能力。 如果聲明瞭CREATEDB,該使用者可以建立她自己的資料庫。 用NOCREATEDB將剝奪一個使用者建立資料庫的能力。

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

該使用者帳號口令的過期的日期(和可選的時間)。 要設定一個口令從不過期,可以用'infinity'。

使用者的新名字。

把該使用者特定的配置變數的會話預設設定為給定的數值。 如果 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>

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

2003-11-02 SQL - Language Statements