2_04_33-権限設定

PHPとPostgreSQLを利用したWEBシステムの開発例を掲載していきます。腕時計 販売サイト my-watch.biz



● 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

 を実行してるからです。

 これが生きているからです。実行内容は独立しています。
 完全権限を取るにはこの設定も取り消す必要があります。

 厳密に言えば全体の設定と矛盾してますよね、これは演習ですので、実際では個別の設定が全体設定に矛盾しないようにして下さい。


戻る

Copyright (c) 2007 MSweb All Rights Reserved

腕時計 クロノグラフ(時計)のメンズ専門販売サイトカシオ G-SHOCK、Baby-G(腕時計)専門の通信販売サイトG-SHOCK、Baby-G専門通販サイト 運営ブログ

腕時計 女性専用 販売のladies-watch.biz腕時計 メンズ(男性)専門販売のmens-watch.biz