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