1 つのステートメント内で異なるテーブルまたは属性に対して異なる特権を付与することは可能ですか?
たとえば、結合したい:
GRANT SELECT ON tbl TO user;
と
GRANT UPDATE OF attr ON tbl TO user;
さらに、別の関係で特権を付与することを組み合わせることができますか?
GRANT INSERT ON tbl2;
すべて 1 つのステートメントで。
複数のオブジェクト権限を 1 つの に組み合わせることができますがGRANT
、それは同じオブジェクトに対してのみです。例えば:
GRANT SELECT, UPDATE(column1, column2), INSERT on TBL to user;
しかし、マニュアルの構文図でわかるように、それぞれGRANT
が一度に 1 つのオブジェクトしか操作できません。
GRANT
ただし、構文を使用すると、複数の を 1 つのステートメントとして実行できCREATE SCHEMA
ます。
CREATE SCHEMA AUTHORIZATION owner_user
GRANT SELECT ON TBL TO user
GRANT SELECT ON TBL2 TO user;
コードを単純化しようとしている場合、これは役に立ちません。ただし、単一のステートメントを使用するという技術的な要件がある場合は、機能する可能性があります。たとえば、DDL ステートメントを組み合わせると、インストール スクリプトの実行にかかる時間が大幅に短縮されることがよくあります。特に、ネットワークが低速な場合はそうです。