無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

ALTER DEFAULT PRIVILEGES

名前

ALTER DEFAULT PRIVILEGES -- デフォルトのアクセス権限を定義する

概要

ALTER DEFAULT PRIVILEGES
    [ FOR { ROLE | USER } 

target_role

 [, ...] ]
    [ IN SCHEMA 

schema_name

 [, ...] ]
    

abbreviated_grant_or_revoke





ここで

abbreviated_grant_or_revoke

は以下のいずれかです。



GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
    [, ...] | ALL [ PRIVILEGES ] }
    ON TABLES
    TO { [ GROUP ] 

role_name

 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { USAGE | SELECT | UPDATE }
    [, ...] | ALL [ PRIVILEGES ] }
    ON SEQUENCES
    TO { [ GROUP ] 

role_name

 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTIONS
    TO { [ GROUP ] 

role_name

 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON TYPES
    TO { [ GROUP ] 

role_name

 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

REVOKE [ GRANT OPTION FOR ]
    { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
    [, ...] | ALL [ PRIVILEGES ] }
    ON TABLES
    FROM { [ GROUP ] 

role_name

 | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { USAGE | SELECT | UPDATE }
    [, ...] | ALL [ PRIVILEGES ] }
    ON SEQUENCES
    FROM { [ GROUP ] 

role_name

 | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTIONS
    FROM { [ GROUP ] 

role_name

 | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON TYPES
    FROM { [ GROUP ] 

role_name

 | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

説明

ALTER DEFAULT PRIVILEGES により今後作成されるオブジェクトに適用される権限を設定することができます。 (既存のオブジェクトに割り当てられている権限には影響しません。) 現時点ではテーブル(ビュー、外部テーブルを含む)、シーケンス、関数、型(ドメインを含む)用の権限のみを変更可能です。

ユーザ自身、ユーザがメンバとして属するロールにより作成されるオブジェクト向けのデフォルト権限を変更することができます。 権限は大域的に(つまり現在のデータベース内に作成されるすべてのオブジェクトに対して)設定することも、指定したスキーマ内に作成されるオブジェクトのみに対して設定することもできます。 スキーマ単位で指定されるデフォルト権限は、大域的な個々の種類のオブジェクト用のデフォルト権限に追加されます。

GRANT の説明通り、任意の種類のオブジェクトのデフォルト権限は通常、オブジェクト所有者に対して付与可能な権限すべてを付与します。 また、同様に PUBLIC に対して一部の権限を付与することもできます。 しかしこの動作は ALTER DEFAULT PRIVILEGES を用いて大域デフォルト権限により変更可能です。

パラメータ

target_role

現在のロールがメンバとして属する、既存のロールの名前です。 FOR ROLE を省略した場合、現在のロールと仮定されます。

schema_name

既存のスキーマの名前です。 指定された場合、そのスキーマ内で後に作成されたオブジェクトに対するデフォルト権限が変更されます。 IN SCHEMA を省略した場合、大域的なデフォルト権限が変更されます。

role_name

権限を付与または取り上げる、既存のロールの名前です。 このパラメータ、および abbreviated_grant_or_revoke 内の他のパラメータは、 GRANT REVOKE の説明通りに動作します。 ただし、指名したオブジェクトではなくオブジェクトクラス全体に対して権限を設定する点が異なります。

注釈

デフォルト権限としてすでに割り当てられている情報を入手するためには psql \ddp コマンドを使用してください。 権限の値の意味は、 GRANT \dp の説明と同じです。

デフォルト権限を変更したロールを削除したい場合、デフォルト権限の項目を取り除くために、そのデフォルト権限の変更を元に戻すか DROP OWNED BY を使用する必要があります。

myschema スキーマ内に今後作成されるすべてのテーブル(およびビュー)に対して、全員にSELECT権限を付与します。 また、 webuser ロールにはそれらに挿入できるようにします。

ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO PUBLIC;
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT INSERT ON TABLES TO webuser;

今後作成されるテーブルが通常以外の権限を持たないように、上を元に戻します。

ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE SELECT ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE INSERT ON TABLES FROM webuser;

今後 admin ロールにより作成されるすべての関数について、通常関数に付与される、全員に対するEXECUTE権限を取り除きます。

ALTER DEFAULT PRIVILEGES FOR ROLE admin REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;

互換性

標準SQLには ALTER DEFAULT PRIVILEGES 文はありません。

関連項目

GRANT , REVOKE

powered by SEO.CUG.NET