すべてのプロダクト
Search
ドキュメントセンター

PolarDB:GRANT

最終更新日:Mar 29, 2026

データベースオブジェクト、ロールメンバーシップ、またはシステムレベルの権限を付与します。

構文

オブジェクト権限 (テーブル、ビュー、シーケンス、またはプログラム):

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 }

パラメーター

パラメーター説明
SELECTテーブル、ビュー、またはシーケンスから行の読み取りを許可します。
INSERTテーブルに行の挿入を許可します。
UPDATEテーブル内の行の更新を許可します。
DELETEテーブルから行の削除を許可します。
REFERENCESテーブルまたは特定カラムを参照する外部キー制約の作成を許可します。
EXECUTE関数、プロシージャ、またはパッケージの呼び出しを許可します。
ALL [PRIVILEGES]オブジェクトタイプに適用可能なすべての権限を付与します。PRIVILEGES はオプションです。
tablename権限を付与するテーブルまたはビュー。
sequencename権限を付与するシーケンス。
progname関数またはプロシージャの名前。
packagenameパッケージの名前。
username権限を受け取るユーザー。
groupname権限を受け取るグループ。
PUBLICすべてのユーザーに権限を付与します。
WITH GRANT OPTION被付与者が同じ権限を他のユーザーに付与することを許可します。PUBLIC には付与できません。
WITH ADMIN OPTION被付与者が他のユーザーにロールを付与することを許可します。
CONNECTユーザーがデータベースに接続することを許可する Oracle互換の組み込みロール。
RESOURCEユーザーがデータベースオブジェクトを作成することを許可する Oracle互換の組み込みロール。
DBA完全な管理権限を持つ Oracle互換の組み込みロール。

説明

GRANT には3種類のバリアントがあります。

  • オブジェクト権限: テーブル、ビュー、シーケンス、関数、プロシージャ、またはパッケージに対する特定の権限 (SELECTINSERTUPDATEDELETEREFERENCES、またはEXECUTE) を、ユーザー、グループ、またはすべてのユーザー (PUBLIC) に付与します。

  • ロールメンバーシップ: ユーザーまたはグループをロールのメンバーとして追加し、ロールの権限を継承させます。

  • システム権限: Oracle互換のシステムロール (CONNECTRESOURCEDBA) や、データベースリンクの作成または削除、アクセスポリシーの免除などの特定のシステムレベルの権限を付与します。

ユーザー、グループ、およびロール

PolarDB for PostgreSQL(Oracle互換) では、ユーザーとグループはロールと呼ばれる単一のエンティティタイプに統合されています。

  • ユーザーは、LOGIN 属性を持つロールです。セッションを作成し、アプリケーションに接続できます。

  • グループは、LOGIN 属性を持たないロールです。セッションを作成したり、アプリケーションに接続したりすることはできません。

ロールは1つ以上の他のロールのメンバーになることができ、ユーザーはユーザーとグループの両方に属することができ、一般的な多層階層を形成します。ユーザー名とグループ名は同じ名前空間を共有するため、GRANT はそれらを区別しません。構文は両方で同じです。

注意事項

  • 不十分な付与オプションを持つ ALL PRIVILEGES: オブジェクトに対して部分的な付与オプションのみを保持している場合、GRANT ALL PRIVILEGES は付与オプションを持つ権限のみを付与し、残りについては警告を発します。直ちに失敗することはありません。

  • カラムレベルとテーブルレベルの権限: ユーザーは、カラムレベルまたはテーブルレベルのいずれかで権限を保持している場合、カラムに対して INSERT または UPDATE を実行できます。カラムレベルの権限を取り消しても、そのカラムに対する既存のテーブルレベルの権限は削除されません。

  • PUBLICWITH GRANT OPTION: 付与オプションは PUBLIC に付与できません。名前付きロールのみが付与オプションを受け取ることができます。

  • 非所有者による付与: オブジェクトを所有していないが、付与オプションを持ついくつかの権限を保持している場合、GRANT はそれらの権限に対してのみ成功します。付与オプションを全く保持していない場合、コマンドは失敗します。

テーブル権限の付与

ユーザー aliceorders テーブルに対する SELECT および INSERT 権限を付与します。

GRANT SELECT, INSERT ON orders TO alice;

この付与後、aliceorders の行を読み取り、挿入できますが、更新または削除はできません。

カラムレベルの権限の付与

ユーザー bobemployees テーブルの特定カラムに対する UPDATE 権限を付与します。

GRANT UPDATE (salary, department_id) ON employees TO bob;

bobsalarydepartment_id を更新できますが、他のカラムは更新できません。

再付与権限付きの付与

ユーザー carolproducts テーブルに対する SELECT 権限を付与し、彼女が同じ権限を他のユーザーに付与することを許可します。

GRANT SELECT ON products TO carol WITH GRANT OPTION;

ロールメンバーシップの付与

ユーザー davereporting_role ロールのメンバーとして追加します。

GRANT reporting_role TO dave;

davereporting_role が保持するすべての権限を継承します。

システムロールの付与

ユーザー eveCONNECT および RESOURCE システムロールを付与します。

GRANT CONNECT, RESOURCE TO eve;

データベースリンク権限の付与

ユーザー frank がパブリックデータベースリンクを作成することを許可します。

GRANT CREATE PUBLIC DATABASE LINK TO frank;