● 2_04_33-権限設定
作成したユーザー、グループに対して権限の設定を行います。下記が構文です。
GRANT 権限 ON 対象オブジェクト TO
権限を与える対象 |
設定項目は以下になります。
| 権限内容は以下になります。 |
対象オブジェクト内容は以下になります。 |
権限を与える対象内容は以下になります。 |
ALL
すべての権限を与えます。 |
テーブル/ビューのいずれかの名称 |
PUBLIC
全ユーザに権限を与えます。 |
SELECT
特定のテーブル/ビュー内のすべてのカラムにアクセス可能 にします。 |
|
GROUP グループ名
権限を与えるグループを指定します。 |
INSERT
特定のテーブル内のすべてのカラムにデータを挿入可能に します。 |
|
ユーザ名
権限を与えるユーザを指定します。 |
UPDATE
特定のテーブル内のすべてのカラムを更新可能にします。 |
|
|
DELETE
特定のテーブルの行を削除可能にします。 |
|
|
RULE
テーブル/ビューにルール の定義を可能にします。 |
|
|
REFERENCES
外部参照制約の定義を可能にします。 |
|
|
TRIGGER
トリガーの定義を可能にします。 |
|
|
「e_shouhin_t」を誰でも検索可能にします。以下をpostgresで実行して下さい。「kaden_hanbai」データベースに接続している必要があります。
GRANT SELECT ON
e_shouhin_t TO PUBLIC |
実行が完了したら下記で接続して下さい。

赤枠のテーブル順に全検索してみて下さい。設定した「e_shouhin_t」テーブルだけが検索できるはずです。

次に作成済みのグループ「msweb_1」に権限設定を行います。
グループ「msweb_1」に対して「 e_shouhin_t」、「
e_hanbai_t」、「 e_kokyaku_t」テーブルにSELECTとUPDATEの権限を与えます。
postgresで接続し直して下さい。以下を実行します。
GRANT SELECT , UPDATE
ON e_shouhin_t , e_hanbai_t , e_kokyaku_t TO GROUP
msweb_1 |
ユーザー「tanaka」で接続します。

赤枠を順に全検索してみて下さい。設定した3つのテーブル以外は閲覧できないはずです。
この権限は他の2人のユーザー「ueda」、「yamada」にも割り当てられています。

update も実行できます、今までのトランザクションを用いてテストしてみて下さい。
権限を取り消す場合は「REVOKE」を使います。「GRANT」と入れ替えて、「TO」を「FROM」に変更します。
下記を実行して下さい。権限が取り消されます。Postgresに接続し直すのをお忘れなく。
REVOKE SELECT
, UPDATE ON e_shouhin_t , e_hanbai_t , e_kokyaku_t
FROM GROUP msweb_1 |
また「tanaka」で接続して下さい。
そして全てのテーブルを検索してみて下さい。
えっ、「e_shouhin_t」テーブルが検索できてしまうって、・・・・このページの一番初めに、
GRANT SELECT ON
e_shouhin_t TO PUBLIC |
を実行してるからです。
これが生きているからです。実行内容は独立しています。
完全権限を取るにはこの設定も取り消す必要があります。
厳密に言えば全体の設定と矛盾してますよね、これは演習ですので、実際では個別の設定が全体設定に矛盾しないようにして下さい。
戻る
|