オープンソースで作る Java+DB

特集 オープンソースで作るJava+DB
第1回 PostgreSQLで学ぶSQLデータベースの操作 (13/15)


セキュリティ設定をする

 ところで、PostgreSQLをTCP/IP経由で利用できるようにすると、場合によっては、誰もがデータベースを利用できてしまうことになり、セキュリティポリシーとしても好ましくないだろう。

 そのため、標準ではTCP/IP接続を有効にしても、明示的に設定ファイルでTCP/IP接続に関するセキュリティ設定をしない限りは、接続できないように構成されている。

 セキュリティ設定を行うのは、データベースの保存域(RPMパッケージからインストールした場合の標準設定先は、/var/lib/pgsql/)のdataサブディレクトリに存在するpg_hba.confファイルだ。このファイル内における標準設定は、次のようになっている。

# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD #local all all trust #host all all 127.0.0.1 255.255.255.255 trust local all all ident sameuser

 TYPEの部分の「local」はUNIXドメイン経由のアクセス、「host」はTCP/IP接続のアクセスを意味する。デフォルトでは、「host」がコメントアウトされており、TCP/IP接続のアクセスを許していない。

 TCP/IPからアクセスできるようにするには、host部分の設定を追加する。

 もっとも簡単なのは、標準で用意されているpg_hba.confファイル内、host部分のコメントアウトをはずして有効化することだ。しかし、そのままでは全ユーザーがパスワードなしでアクセスすることができてしまう。そこで事前に、次のようなユーザー作成、パスワードを設定しておき、パスワード認証をするように構成するのが望ましい。

ユーザーの作成

 PostgreSQLでユーザーを作成するには、createuserコマンドを使う。

# su -postgres
$ createuser -P

One Point!

psqlコマンドでCREATE USER文を使ってユーザーを作成することもできる。

 ここで指定した-Pオプションは、ユーザー作成時にパスワードも併せて設定するためのオプションだ。-Pオプションを指定しないと、パスワードなしのユーザーが作られる。

 createuserコマンドを実行すると、まず次のように、ユーザー名を尋ねられる。ここでは、仮にdbuserという名前のユーザーを作成することにしよう。

Enter name of user to add: dbuser

 次にパスワードが尋ねられる。適当なものを入力する。

Enter password for user "dbuser":
Enter it again:

 次に、データベースを作成することを許すかどうかを決める。createdbコマンドを使い、データベース作成を許可するかを指定するのだ。基本的には、むやみやたらとデータベースの作成権を与えるのは好ましくないため、ここでは、「n」を選択するべきだ。

Shall the new user be allowed to create databases? (y/n) n

 次に、このユーザーに対して、ユーザーの作成権限を与えるかどうかが尋ねられる。やはり作成権を与えるのは好ましくないため、ここでも「n」を選択しよう。

Shall the new user be allowed to create more new users? (y/n) n

 最後に「CREATE USER」と表示され、ユーザーが作成されたことが分かる。

CREATE USER

前のページ | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 次のページ

[大澤文孝,ITmedia]