トッカンソフトウェア

スキーマ、ロール作成

今回は、ロールを作成してみます。ロールにはログインロールとグループロールがあります。
詳細ははじめにを参照して下さい。


スキーマの作成

スキーマを作成するにはpgAdminでスキーマを右クリックして「新しいスキーマ」を選択します。


ダイアログが表示されるので、名前にスキーマ名を入力してOKボタンを押します。


スキーマが作成されていることが確認できます。

テスト用テーブルの作成

初期に、pgAdminでテーブルを作成したことあるので、今回は省略します。

今回は以下のSQLで作成されるテーブルをテストで使用します。
				
CREATE TABLE sch.tbl
(
  idx integer primary k
);


			

ログインロールの作成

ログインロールを作成するにはログインロールを右クリックして「新しいログインロール」を選択します。



ロール名を入力します。


定義タブに移動してパスワードを入力して、OKボタンを押します。


これでログインロールが作成されます。

接続先の作成(usrログインロールで接続)

新しくログインロールを作成したので、作成したログインロールでデータベースに接続できるようにします。

まず、右上の電源アイコンをクリックします。


表示されたダイアログで接続情報を入力し、OKボタンを押すと接続先が作成されます。

名前 ・・・ pgAdminに表示させる名前です。なんでも良いです。
ホスト ・・・ データベースが動作するPC名、またはIPアドレス。
Port ・・・ 接続ポート。通常はデフォルトで良いです。
ユーザ名 ・・・ ログインロールのロール名。
パスワード ・・・ ログインロールのパスワード。


pgAdminで作成した接続先を展開すると作成したテーブルが確認できます。


権限を制限

新しいログインロールを作成したとき、デフォルトの状態では、データベースの中身が見えてしまいます。

以下のSQLを実行すると、権限を設定していないデータベースが見れなくなります。

対象のデータベースに合わせて、以下の postgres の部分を対象のデータベースに変更してください。
				
REVOKE ALL PRIVILEGES ON DATABASE postgres FROM public;


			
上記のSQL実行後は、作成した接続先も接続拒否されます。


接続の許可

上記操作で、接続できなくなったので、まず以下のSQLで接続権限を与えます。

対象のデータベースに合わせて、以下の postgres の部分を対象のデータベースに変更してください。
				
GRANT CONNECT ON DATABASE postgres TO usr;


			
接続ができるようになり、データベースの構造が見えますが、テーブルのデータをみようとすると拒否されます。


データ抽出(SELECT)の許可

次にテーブルのデータを見れるようにします。以下のSQLでスキーマに使用権限を許可し、テーブルの参照権限を許可します。
				
GRANT USAGE ON SCHEMA sch TO usr;
GRANT SELECT ON TABLE sch.tbl TO usr;


			
上記SQLを実行することでテーブルのデータが参照できるようになります。



データ抽出以外のテーブル操作の許可

データ参照以外も上記とおなじようなSQLで許可できるのですが、今回はpgAdminで許可を与えてみます。

テーブルを右クリックして「プロパティ」を選択します。


表示されたダイアログで権限を選択します。

対象となるロールを選択し、許可したい操作にチェックを付けてOKボタンを押します。




スキーマ使用以外のスキーマの許可

スキーマを右クリックして、プロパティを選択して、表示されたダイアログで権限を選択し、ロールを選択し、
追加したい操作にチェックを付けてOKボタンを押します。



接続以外のデータベースの許可

データベースを右クリックして、プロパティを選択して、表示されたダイアログで権限を選択し、ロールを選択し、
追加したい操作にチェックを付けてOKボタンを押します。



新規にデータベース作成、ロール作成など特別な権限

ロールにデータベース作成許可、ロール作成許可などを行う場合、ロールを右クリックして、プロパティを選択して、表示された
ダイアログでロール特権を選択して、追加したい権限をチェックしてOKボタンを押します。

テーブルの権限などはロールメンバーを設定することで共有できますが、ロール特権は共有できません。個別に設定する必要
があります。


ページのトップへ戻る