OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2013/09/08
更新日: 2016/07/30

OSSでLinuxサーバ構築

PostgreSQLのデータベースユーザ作成

トップページOSSでLinuxサーバ構築 > 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

手順

オプションを対話形式で指定してデータベースユーザを作成

(1) 作成前の確認

 データベースユーザを作成する前に現状のデータベースユーザを確認しておきます。 psqlでデータベースに接続し、メタコマンドでユーザ(ロール)一覧を表示します。 以下の手順は管理ユーザ(OSユーザ)である postgres で実行します。

# su - postgres
-bash-3.2$ psql
psql (9.0.13)
"help" でヘルプを表示します.

postgres=# \du
                                ロール一覧
 ロール名 |                        属性                        | メンバー
----------+----------------------------------------------------+----------
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる | {}

postgres=# \q
-bash-3.2$

(2) データベースユーザの作成

 管理ユーザでデータベースユーザ user1 を作成します。 データベースユーザの作成はpsqlではなく、Linuxのシェル上で実行します。 オプションは対話形式で指定しますが、パスワードを設定するための -P オプションだけは付与しておきます。 対話形式で指定するオプションは以下の3つです。
・スーパーユーザにするか
・データベース作成権限を付与するか
・ロール(ユーザ)の作成権限を付与するか
今回はいずれの権限も持たない一般ユーザを作成します。 一通りオプションを指定し終わると、データベースに接続するためのパスワード入力を求められるので、 管理ユーザのパスワードを入力します。

-bash-3.2$ createuser -P user1
新しいロールのためのパスワード: ←作成するデータベースユーザ user1 のパスワードを入力
もう一度入力してください: ←同じパスワードを再入力
新しいロールをスーパーユーザにしますか? (y/n)n
新しいロールに対してデータベースを作成する権限を与えますか? (y/n)n
新しいロールに対して別のロールを作成する権限を与えますか? (y/n)n

(3) 作成後の確認

 作成前のユーザ確認と同様にpsqlで接続し、メタコマンドでユーザ一覧を表示して確認します。

-bash-3.2$ psql
psql (9.0.13)
"help" でヘルプを表示します.

postgres=# \du
                                ロール一覧
 ロール名 |                        属性                        | メンバー
----------+----------------------------------------------------+----------
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる | {}
 user1    |                                                    | {} ←作成された

postgres-# \q
-bash-3.2$ exit

オプションをコマンドの引数で指定してデータベースユーザを作成

(1) 作成前の確認

 データベースユーザを作成する前に現状のデータベースユーザを確認しておきます。 psqlでデータベースに接続し、メタコマンドでユーザ(ロール)一覧を表示します。 以下の手順は管理ユーザ(OSユーザ)である postgres で実行します。

# su - postgres
-bash-3.2$ psql
psql (9.0.13)
"help" でヘルプを表示します.

postgres=# \du
                                ロール一覧
 ロール名 |                        属性                        | メンバー
----------+----------------------------------------------------+----------
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる | {}

postgres=# \q
-bash-3.2$

(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ログイン権限を与えない。

(3) 作成後の確認

 作成前のユーザ確認と同様にpsqlで接続し、メタコマンドでユーザ一覧を表示して確認します。

-bash-3.2$ psql
psql (9.0.13)
"help" でヘルプを表示します.

postgres=# \du
                                ロール一覧
 ロール名 |                        属性                        | メンバー
----------+----------------------------------------------------+----------
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる | {}
 user1    |                                                    | {} ←作成された

postgres-# \q
-bash-3.2$ exit

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会


第000414号