【PostgreSQL】createuserで新しいロールを作成してみた

PostgreSQL

createuserって?

PostgreSQLの新しいユーザアカウントを作成するよ
SQLコマンドのCREATE ROLE/CREATE USERと同じことをしているようだ
まずは構文を確認しようか

構文

createuser [接続オプション] [オプション] [ロールf名]

オプションもあるのか、確認しよう

オプション

オプション説明
-P
--pwprompt
パスワードを設定する
-s
--superuser
新しいユーザをスーパーユーザとして作成する
-d
--createdb
データベースの作成を許可する
-r
--createrole
新しいユーザの作成を許可する
-l
--login
ログインを許可する(デフォルト)
-S
--no-superuser
新しいユーザをスーパーユーザにしない(デフォルト)
-D
--no-createdb
データベースの作成を禁止する(デフォルト)
-R
--no-createrole
新しいユーザの作成を禁止する(デフォルト)
-L
--no-login
ログインを禁止する

大文字は禁止系なんですね
新しいユーザアカウントを作成できるのは、スーパーユーザとCREATEROLE権限があるユーザのみ
たしかに誰もが自由にユーザ作成されたら管理も大変だよな

早速createuserを使ってユーザを作ってみよ

使用例

とりあえずtestユーザを作ってみよう。
パスワードも検証だからtestにして、スーパーユーザにしたくないから-Sをつけてと。

-bash-4.2$ createuser -U postgres -P -S test
新しいロールのためのパスワード: 
もう一度入力してください:
パスワード:

特に完了したことはでないのか。
そしたら一覧で作成出来たか確認してみよう。

-bash-4.2$ psql -U postgres -c "\du"
ユーザ postgres のパスワード: 
                                              ロール一覧
 ロール名 |                                    属性                                    | 所属グループ 
----------+----------------------------------------------------------------------------+--------------
 postgres | スーパーユーザ, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス | {}
 test     |                                                                            | {}

おぉ、出来ている。
わざわざPostgreSQLに入らなくても作成できるのは楽だな。
実務にも活かせそうだ。

コメント

タイトルとURLをコピーしました