| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
CREATE USER name [ [ WITH ] option [ ... ] ]
這裡 option 可以是︰
SYSID uid
| CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| IN GROUP groupname [, ...]
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'abstime'CREATE USER 向一個 PostgreSQL 資料庫集群增加一個新用戶。 參考 Chapter 17 和 Chapter 19 獲取關於管理用戶和認證的訊息。 要執行這條命令,您必須是一個資料庫超級用戶。
新用戶名
SYSID 子句可以用於選擇新用戶的 PostgreSQL 用戶標識。 通常這是不必要的,但是如果您想恢復一個孤兒對象的所有者,也許這個很有用。
如果沒有聲明這個,預設使用已分配的最高用戶標識加一(最小是 100)。
這個子句定義用戶的建立資料庫權限。 如果聲明了CREATEDB, 被定義的用戶將允許建立其自己的資料庫。 而使用NOCREATEDB將否決該用戶的建立資料庫的能力。 如果沒有聲明,預設是NOCREATEDB。
該子句決定一個用戶是否能建立一個新的用戶。 CREATEUSER 將把此用戶變成資料庫超級用戶,可以跨越所有訪問限制。省略這個參數將置用戶的這個屬性為 NOCREATEUSER。
一個組名稱,把這個用戶設為該組成員。 您可以列出多個組名字。
設置用戶的指令,如果您不準備使用指令認證, 那麼您可以省略這個選項,但如果您想切換到一個指令認證的伺服器,那麼該用戶將不能連線。 此指令可以稍後再次設置或者修改,使用 ALTER USER。
ENCRYPTED/UNENCRYPTED 控制指令在資料庫中是否以加密形式儲存在系統資料表中。 (如果兩個都沒有設置,那麼預設的特性是由配置參數 password_encryption 決定的。) 如果提供的字串已經是 MD5 加密的格式,那麼就照原樣儲存, 不管聲明的是 ENCRYPTED 還是 UNENCRYPTED (因為系統無法解密制定的加密指令字串)。 這樣就允許在轉儲/恢復的過程中重載加密後的指令。
請注意老的客戶端可能缺少 MD5 認證機制,我們需要這個認證機制處理儲存為密文的指令。
VALID UNTIL(有效期)子句設置一個絕對時間, 過了該時間後用戶的指令將不再有效。 如果省略這個子句,登陸將總是有效的。
使用 ALTER USER 修改用戶的指令和權限, DROP USER 刪除一個用戶。 使用 ALTER GROUP 從組中增加或刪除用戶。
PostgreSQL 裡有一個程序 createuser 與CREATE USER 有相同的功能(實際上,它調用這條命令), 但是可以在命令行上執行。
建立一個沒有指令的用戶:
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