PostgreSQLのデータベースユーザ作成
目次
概要
PostgreSQLのデータベースユーザを作成します。 データベースユーザ作成時のオプションは、対話形式で入力する方法と コマンドの引数で指定する方法がありますので、両方を紹介します。 どちらの手順でも作成されるデータベースユーザは同じです。
データベースユーザ作成の過程で、作成するデータベースユーザのパスワードと データベースに接続するための管理ユーザのパスワードの両方を求められます。 初めての場合ちょっと分かりづらいので注意してください。
構成
サーバ構成
OSバージョン
Red Hat Enterprise Linux 5.9 x86_64
パッケージ一覧
postgresql90-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-libs-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-server-9.0.8-1PGDG.rhel6.x86_64.rpm
手順
オプションを対話形式で指定してデータベースユーザを作成
作成前の確認
データベースユーザを作成する前に現状のデータベースユーザを確認しておきます。 psqlでデータベースに接続し、メタコマンドでユーザ(ロール)一覧を表示します。 以下の手順は管理ユーザ(OSユーザ)である postgres で実行します。
# su - postgres
-bash-3.2$ psql
psql (9.0.13)
"help" でヘルプを表示します.
postgres=# \du
                                ロール一覧
 ロール名 |                        属性                        | メンバー
----------+----------------------------------------------------+----------
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる | {}
postgres=# \q
-bash-3.2$
データベースユーザの作成
 管理ユーザでデータベースユーザ user1 を作成します。
データベースユーザの作成はpsqlではなく、Linuxのシェル上で実行します。
オプションは対話形式で指定しますが、パスワードを設定するための -P オプションだけは付与しておきます。
対話形式で指定するオプションは以下の3つです。
・スーパーユーザにするか
・データベース作成権限を付与するか
・ロール(ユーザ)の作成権限を付与するか
今回はいずれの権限も持たない一般ユーザを作成します。
一通りオプションを指定し終わると、データベースに接続するためのパスワード入力を求められるので、
管理ユーザのパスワードを入力します。
-bash-3.2$ createuser -P user1 新しいロールのためのパスワード: ←作成するデータベースユーザ user1 のパスワードを入力 もう一度入力してください: ←同じパスワードを再入力 新しいロールをスーパーユーザにしますか? (y/n)n 新しいロールに対してデータベースを作成する権限を与えますか? (y/n)n 新しいロールに対して別のロールを作成する権限を与えますか? (y/n)n
作成後の確認
作成前のユーザ確認と同様にpsqlで接続し、メタコマンドでユーザ一覧を表示して確認します。
-bash-3.2$ psql
psql (9.0.13)
"help" でヘルプを表示します.
postgres=# \du
                                ロール一覧
 ロール名 |                        属性                        | メンバー
----------+----------------------------------------------------+----------
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる | {}
 user1    |                                                    | {} ←作成された
postgres-# \q
-bash-3.2$ exit
オプションをコマンドの引数で指定してデータベースユーザを作成
作成前の確認
データベースユーザを作成する前に現状のデータベースユーザを確認しておきます。 psqlでデータベースに接続し、メタコマンドでユーザ(ロール)一覧を表示します。 以下の手順は管理ユーザ(OSユーザ)である postgres で実行します。
# su - postgres
-bash-3.2$ psql
psql (9.0.13)
"help" でヘルプを表示します.
postgres=# \du
                                ロール一覧
 ロール名 |                        属性                        | メンバー
----------+----------------------------------------------------+----------
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる | {}
postgres=# \q
-bash-3.2$
データベースユーザの作成
 管理ユーザでデータベースユーザ user1 を作成します。
データベースユーザの作成はpsqlではなく、Linuxのシェル上で実行します。
オプションはコマンドの引数で指定します。
引数で指定するオプションは以下の3つです。
・スーパーユーザにするか
・データベース作成権限を付与するか
・ロール(ユーザ)の作成権限を付与するか
今回はいずれの権限も持たない一般ユーザを作成します。
データベースに接続するためのパスワード入力を求められるので、
管理ユーザのパスワードを入力します。
-bash-3.2$ createuser -S -D -R -P user1 新しいロールのためのパスワード: ←作成するデータベースユーザ user1 のパスワードを入力 もう一度入力してください: ←同じパスワードを再入力
なお、createuserコマンドのオプションは以下の通りです。
| オプション | 説明 | 
|---|---|
| -P | パスワードを設定する。 | 
| -s | スーパーユーザ権限を与える。 | 
| -S | スーパーユーザ権限を与えない。 | 
| -d | データベース作成権限を与える。 | 
| -D | データベース作成権限を与えない。 | 
| -r | ユーザ作成権限を与える。 | 
| -R | ユーザ作成権限を与えない。 | 
| -l | ログイン権限を与える。(デフォルト) | 
| -L | ログイン権限を与えない。 | 
作成後の確認
作成前のユーザ確認と同様にpsqlで接続し、メタコマンドでユーザ一覧を表示して確認します。
-bash-3.2$ psql
psql (9.0.13)
"help" でヘルプを表示します.
postgres=# \du
                                ロール一覧
 ロール名 |                        属性                        | メンバー
----------+----------------------------------------------------+----------
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる | {}
 user1    |                                                    | {} ←作成された
postgres-# \q
-bash-3.2$ exit
