アクセス権限を定義します。
構文
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
コマンドでは判別されません。