createuser

Name

createuser -- 定義一個新的 PostgreSQL 用戶帳戶

Synopsis

createuser [option...] [username]

描述

createuser建立一個新的 PostgreSQL 用戶。只有超級用戶(在 pg_shadow 資料表裡面設置了 usesuper 的用戶)可以建立新的 PostgreSQL 用戶。 因此,createuser 必須由某位可以以 PostgreSQL 超級用戶連接的用戶執行。

作為超級用戶同時也意味著繞開資料庫內訪問檢查的能力, 因此我們應該少賦予超級用戶權限。

createuserSQL 命令 CREATE USER的封裝。 因此,用那種方法建立新用戶都沒什麼特別的。

選項

createuser 接受下列命令行參數:

username

聲明要建立的 PostgreSQL 用戶名稱。 該名稱必須在所有 PostgreSQL 用戶中唯一。

-a
--adduser

允許該新建用戶建立其他用戶。 (注意︰實際上這樣做相當於把這個新用戶變成了 superuser,只不過這個選項命名得比較爛。)

-A
--no-adduser

不允許該新建用戶建立其他用戶。 (也就是說,該用戶是一個普通用戶,不是超級用戶)。

-d
--createdb

允許該新建用戶建立資料庫。

-D
--no-createdb

禁止該新建用戶建立資料庫。

-e
--echo

回顯 createuser 生成的命令並發送給伺服器。

-E
--encrypted

對保存在資料庫裡的用戶指令加密。如果沒有聲明, 則使用預設值。

-i number
--sysid number

允許您給新用戶使用非預設用戶標識。這個也不是必須的,但是有些人喜歡這樣。

-N
--unencrypted

不對保存在資料庫裡的用戶指令加密。如果沒有聲明, 則使用預設值,

-P
--pwprompt

如果給出,createuser 將發出一個提示符要求輸入新用戶的指令。 如果您不打算用指令認證,那麼這是不必要的。

-q
--quiet

不顯示響應。

如果沒有在命令行上聲明名稱和其他的一些缺少的訊息,腳本會提示您輸入。

createuser 還接受下列命令行參數用作連接參數:

-h host
--host host

聲明執行伺服器的機器的主機名。 如果數值以斜槓開頭,則它被用做到 Unix 域套接字的路徑。

-p port
--port port

聲明伺服器 正在偵聽的互聯網 TCP 連接埠號或本地Unix域套接字的文件擴展(描述符)。

-U username
--username username

連接的用戶名(不是要建立的用戶名)。

-W
--password

強制指令提示(與伺服器連接的指令,不是新用戶的指令。)

環境

PGHOST
PGPORT
PGUSER

預設連接參數。

診斷

如果出現錯誤,將會顯示後端錯誤訊息。參閱 CREATE USERpsql 獲取可能訊息描述。資料庫伺服器必須在目標主機上執行。 同樣,任何 libpq 前端庫使用的預設連接設置和環境變量都將適用。

例子

在預設資料庫伺服器上建立一個用戶 joe

$ createuser joe
Is the new user allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER

用在主機eden上的伺服器建立用戶 joe,連接埠是 5000,避免提示並且顯示執行的命令:

$ createuser -p 5000 -h eden -D -A -e joe
CREATE USER "joe" NOCREATEDB NOCREATEUSER
CREATE USER

又見

dropuser, CREATE USER