PostgreSQL:ログインロール
これからしばらくは、PgAdmin を実際に操作しながら、 データベースを作成していきます。 ログインロールは、 データベースへのアクセス権限を複数用意するために使用します。 もし、 誰でも簡単に データベースそのものすら消せるとしたら、 安心してデータを入力できません。 PostgreSQL では、 ・データベース管理者は何でもでき、 ・一般ユーザーは、個々のデータの入出力だけ、 とか、 ・ユーザー毎にアクセスできるデータベースを制限する、 など、 柔軟なアクセス権限の制御が可能です。 これらユーザーの区別に用いるのが、 ログインロールです。 # ログインロールを複数まとめてグループ化するための、 # グループロールも作成できますが、本稿では扱いません。 では、ログインロールを作ってみましょう。 # データベースへデータを登録のところで # 一度、作成していますが、 # 再度、確認の意味で新しいロールを作ってみてください。
・[Login/Group Roles] を右クリック。[Create...]、[Login/Group Roles...] ・「General」タブで、 Name:sql_sample ・「Definition」タブで、 Password:sql_sample ・「Privileges」タブで、 ・「Can login?」 ・「Create database?」 だけにチェックを入れます。 # 他は外しておきます。 下記のようなロールが作成されていれば OK です。ここで、一旦、データベースを切断し、 sql_sample のロールで接続し直します。 具体的には、 ・[PostgreSQL 17] を右クリック。 ・「Disconnect from server」、「Disconnect」 ・[PostgreSQL 17] を右クリック ・「Properties...」 ・「Connection]タブの 「Username」を postgres から sql_sample に書き換えます。 ・[PostgreSQL 17] をダブルクリック。 パスワードを聞かれるので、sql_sample と入力します。 これで、ロール sql_sample で、接続しました。 # 「Save Passowrd」にチェックを付けておけば、 # 次回からは聞かれなくなります。 doc_list を含め、内容を閲覧する分には支障もない事を確認しておきます。 次に、sql_sample には特定の権限しか与えていないので、 他の権限が使えない事を見ておきましょう。 具体的には、 ・[Login/Group Roles]、[postgres] を右クリック ・「Properties...」 ・「Privileges」タブを見ます。 どの設定もグレーアウトしていて、変更できないはずです。 # Privileges の設定を変更するには、「Create roles」権限が必要です。
ここで、一旦、データベースを切断し、
sql_sample のロールで接続し直します。
具体的には、
・[PostgreSQL 17] を右クリック。
・「Disconnect from server」、「Disconnect」
・[PostgreSQL 17] を右クリック
・「Properties...」
・「Connection]タブの
「Username」を postgres から sql_sample に書き換えます。
・[PostgreSQL 17] をダブルクリック。
パスワードを聞かれるので、sql_sample と入力します。
これで、ロール sql_sample で、接続しました。
# 「Save Passowrd」にチェックを付けておけば、
# 次回からは聞かれなくなります。
doc_list を含め、内容を閲覧する分には支障もない事を確認しておきます。
次に、sql_sample には特定の権限しか与えていないので、
他の権限が使えない事を見ておきましょう。
具体的には、
・[Login/Group Roles]、[postgres] を右クリック
・「Properties...」
・「Privileges」タブを見ます。
どの設定もグレーアウトしていて、変更できないはずです。
# Privileges の設定を変更するには、「Create roles」権限が必要です。
"C:\Program Files\PostgreSQL\17\pgAdmin 4\runtime\pgAdmin4.exe"
で起動、
[PostgreSQL 17] をダブルクリックして、
中身を開きます。