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] を右クリック ・[プロパティ] ・「ロール特権」タブを見ます。 どの設定もグレーアウトしていて、変更できないはずです。 # ロール特権の設定を変更するには、「ロール作成権限」が必要です。
ここで、一旦、データベースを切断し、
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)] をダブルクリックして、
中身を開きます。