アクセス権限を定義します。

構文

GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES }
  [,...] | ALL [ PRIVILEGES ] }
  ON tablename
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { { INSERT | UPDATE | REFERENCES } (column [, ...]) }
  [, ...]
  ON tablename
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { SELECT | ALL [ PRIVILEGES ] }
  ON sequencename
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
  ON FUNCTION progname
    ( [ [ argmode ] [ argname ] argtype ] [, ...] )
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
  ON PROCEDURE progname
    [ ( [ [ argmode ] [ argname ] argtype ] [, ...] ) ]
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
  ON PACKAGE packagename
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT role [, ...]
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH ADMIN OPTION ]

GRANT { CONNECT | RESOURCE | DBA } [, ...]
  TO { username | groupname } [, ...]
  [ WITH ADMIN OPTION ]

GRANT CREATE [ PUBLIC ] DATABASE LINK
  TO { username | groupname }

GRANT DROP PUBLIC DATABASE LINK
  TO { username | groupname }

GRANT EXEMPT ACCESS POLICY
  TO { username | groupname }

説明

GRANT コマンドには、基本的なバリアントが 3 つあります。データベースオブジェクト (テーブル、ビュー、シーケンス、プログラム) に対する権限を付与するもの、ロールのメンバーシップを付与するもの、システム権限を付与するものです。 これらのバリアントは多くの点で似ていますが、それぞれは異なるものです。 各バリアントについては、特定のページをご参照ください。

Oracle と互換性のある PolarDB データベースでは、ユーザーとグループの概念が 1 つのタイプのエンティティに統一されていて、これはロールと呼ばれます。 ユーザーは LOGIN 属性を使用したロールです。 ロールを使ってセッションを作成し、アプリケーションへ接続することができます。 グループは LOGIN 属性を持たないロールです。 セッションの作成やアプリケーションの接続にロールを使用することができません。

ロールは、1 つ以上のロールのメンバーになることができます。 したがって、グループ内のユーザーメンバーシップの従来の概念は引き続き有効となります。 ただし、ユーザーやグループの一般化によって、ユーザーやグループに属することになります。 これは、ロールに対して一般的なマルチレベル階層を形成します。 ユーザー名とグループ名は同じ名前空間を共有するため、被付与者がユーザーかまたはグループであるかは、GRANT コマンドでは判別されません。