特集 オープンソースで作る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]