3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PostgreSQL 入門Advent Calendar 2023

Day 8

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

Last updated at Posted at 2023-12-07

createuserって?

PostgreSQLの新しいユーザアカウントを作成するよ。
SQLコマンドのCREATE ROLE/CREATE USERと同じことをしているようだ
だけど、psqlでPostgreSQLにログインしないで使える
まずは構文を確認しようか

構文

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に入らなくても作成できるのは楽だな。
実務にも活かせそうだ。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?