PostgreSQL:ログインロール
これからしばらくは、PgAdmin を実際に操作しながら、
データベースを作成していきます。
ログインロールは、
データベースへのアクセス権限を複数用意するために使用します。
もし、
誰でも簡単に
データベースそのものすら消せるとしたら、
安心してデータを入力できません。
PostgreSQL では、
データベース管理者は何でもでき、
一般ユーザーは、個々のデータの入出力だけ、
とか、
ユーザー毎にアクセスできるデータベースを制限する、
など、
柔軟なアクセス権限の制御が可能です。
これらユーザーの区別に用いるのが、
ログインロールです。
# ログインロールを複数まとめてグループ化するための、
# グループロールも作成できますが、本稿では扱いません。
では、ログインロールを作ってみましょう。
# データベースへデータを登録のところで
# 一度、作成していますが、
# 再度、確認の意味で新しいロールを作ってみてください。
・[ログインロール] を右クリック。[新しいログインロール...]
・「プロパティ」タブで、
ロール名:sql_sample
・「定義」タブで、
パスワード:sql_sample
パスワード(確認):sql_sample
・「ロール特権」タブで、
今回は、
「Can create database (データベースオブジェクト作成権限)」
だけにチェックを入れます。
# 他は外しておきます。
下記のようなロールが作成されていれば OK です。
ここで、一旦、データベースを切断し、
sql_sample のロールで接続し直します。
具体的には、
・[PostgreSQL 9.2 (localhost:5432)] を右クリック
・Disconnect server (切断)
・[PostgreSQL 9.2 (localhost:5432)] を右クリック
・プロパティ
・「ユーザー名」を postgres から sql_sample に書き換えます。
「注:サーバー設定のいくつかは」といったメッセージが表示されますが、
気にせず OK です。
・[PostgreSQL 9.2 (localhost:5432)] をダブルクリック。
パスワードを聞かれるので、sql_sample と入力します。
これで、ロール sql_sample で、接続しました。
# 「パスワード保存」にチェックを付けておけば、
# 次回からは聞かれなくなります。
doc_list を含め、内容を閲覧する分には何の支障もない事を
確認しておきます。
次に、sql_sample には「データベースオブジェクト作成権限」しか与えていないので、
他の権限が使えない事を見ておきましょう。
具体的には、
・[ログインロール]、[sql_sample] を右クリック
・[プロパティ]
・「ロール特権」タブを見ます。
どの設定もグレーアウトしていて、変更できないはずです。
# ロール特権の設定を変更するには、「ロール作成権限」が必要です。
"C:\Program Files\PostgreSQL\9.2\bin\pgAdmin3.exe"
で起動、
[PostgreSQL 9.2 (localhost:5432)] をダブルクリックして、
中身を開きます。