Scroll to navigation

CREATE USER(7) SQL Commands CREATE USER(7)

NAME

CREATE USER - 創建一個新的數據庫用戶帳戶

SYNOPSIS

CREATE USER name [ [ WITH ] option [ ... ] ]
where option can be:
    
      SYSID uid 
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER
    | IN GROUP groupname [, ...]
    | VALID UNTIL 'abstime' 

DESCRIPTION 描述

CREATE USER 向一個 PostgreSQL 數據庫集羣增加一個新用戶。 參考 Chapter 17 ``Database Users and Privileges'' 和 Chapter 19 ``Client Authentication'' 獲取關於管理用戶和認證的信息。 要執行這條命令,你必須是一個數據庫超級用戶。

PARAMETERS 參數

name
用戶名
uid
SYSID 子句可以用於選擇正在被創建的用戶的 PostgreSQL 用戶標識。 通常這是不必要的,但是如果你想恢復一個孤兒對象的所有者,也許這個很有用。

如果沒有聲明這個,缺省使用已分配的最高用戶標識加一(最小是 100)。

password
設置用戶的口令,如果你不準備使用口令認證, 那麼你可以省略這個選項,但如果你想切換到一個口令認證的服務器,那麼該用戶將不能聯接。 此口令可以稍後再次設置或者修改,使用 ALTER USER [alter_user(7)]。
ENCRYPTED
UNENCRYPTED
控制口令在數據庫中是否以加密形式存儲在系統表中。 (如果兩個都沒有設置,那麼缺省的特性是由配置參數 password_encryption 決定的。) 如果提供的字串已經是 MD5 加密的格式,那麼就照原樣存儲, 不管聲明的是 ENCRYPTED 還是 UNENCRYPTED。 這樣就允許在轉儲/恢復的過程中重載加密後的口令。

請注意老的客戶端可能缺少 MD5 認證機制,我們需要這個認證機制處理存儲爲密文的口令。

CREATEDB
NOCREATEDB
這個子句定義用戶的創建數據庫權限。 如果聲明瞭CREATEDB, 被定義的用戶將允許創建其自己的數據庫。 而使用NOCREATEDB將否決該用戶的創建數據庫的能力。 如果忽略本子句,缺省是NOCREATEDB。
CREATEUSER
NOCREATEUSER
該子句決定一個用戶是否能創建一個新的用戶。 這個選項同樣把此用戶變成數據庫超級用戶,可以跨越所有訪問限制。省略這個參數將置用戶的這個屬性爲 NOCREATEUSER。
groupname
一個組名稱,把這個用戶設爲該組成員。 你可以列出多個組名字。
abstime
VALID UNTIL (有效期)子句設置一個絕對時間, 過了該時間後用戶的口令將不再有效。 如果省略這個子句,登陸將總是有效的。

NOTES 注意

使用 ALTER USER [alter_user(7)] 修改用戶的口令和權限,DROP USER [drop_user(7)] 刪除一個用戶。 使用 ALTER GROUP [alter_group(l)] 從組中增加或刪除用戶。

PostgreSQL 裏有一個程序 createuser [createuser(1)] 與CREATE USER 有相同的功能(實際上,它調用這條命令), 但是可以在命令行上運行。

EXAMPLES 例子

創建一個沒有口令的用戶:

CREATE USER jonathan;

創建一個有口令的用戶:

CREATE USER davide WITH PASSWORD 'jw8s0F4';

創建一個有口令的用戶,其帳號在 2004 年底失效。 注意當 2005 年走過一秒後,該帳號將不再有效:

CREATE USER miriam WITH PASSWORD 'jw8s0F4' VALID UNTIL '2005-01-01';

創建一個擁有創建數據庫權限的用戶:

CREATE USER manuel WITH PASSWORD 'jw8s0F4' CREATEDB;

COMPATIBILITY 兼容性

CREATE USER 語句是 PostgreSQL 擴展。 SQL 標準把用戶的定義交給具體實現處理。

SEE ALSO 參見

ALTER USER [alter_user(7)], DROP USER [drop_user(l)], createuser(1)

譯者

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

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