GRANT
コマンドのこの変種は、データベースオブジェクトに対する特定の権限をロールに付与します。 これらの権限は、ロールにすでに付与されている権限に追加されます。
PUBLIC
キーワードは、権限を後で作成するロールを含め、すべてのロールに付与することを示します。 PUBLIC
はすべてのロールを含む暗黙的に定義されたグループです。 ロールには、そのロールに直接付与される権限、そのロールがメンバーになっている別のロールに付与される権限、および
PUBLIC
に付与される権限があります。
WITHGRANT OPTION
を指定した場合、権限を付与された者はそれを他のロールに付与できます。 これらのキーワードを指定しない場合、付与された者は権限を付与することはできません。 付与オプションは
PUBLIC
には付与できません。
所有者はデフォルトですべての権限を持っているため、オブジェクトの所有者 (通常はオブジェクトを作成したユーザー) に権限を付与する必要はありません。 所有者は、安全のために自分の権限の一部を取り消すことを選択できます。 付与可能な権限には、オブジェクトを削除したり、その定義を変更したりする権限は含まれません。 付与できない権限は所有者に固有のものであり、付与または取り消すことはできません。 さらに、所有者は暗黙的にオブジェクトのすべての付与オプションを持っています。
オブジェクトのタイプに応じて、特定の権限を PUBLIC
に付与することができます。 デフォルトの権限は、テーブルの非パブリックアクセスと、関数、プロシージャ、およびパッケージに対する EXECUTE
権限です。 オブジェクト所有者は、これらの権限を取り消すことができます。 最大限のセキュリティを確保するために、オブジェクトの作成と同じトランザクションで REVOKE
コマンドを発行することができます。 これにより、他のユーザーはどのウィンドウでもオブジェクトを使用できません。
以下の表は、可能な権限について説明しています。
権限 | 説明 |
---|---|
SELECT | 指定されたテーブル、ビュー、またはシーケンスの列から SELECT することができます。 シーケンスの場合、この権限によって currval 関数を使用することができます。
|
INSERT | 指定されたテーブルに新しい行を INSERT することができます。
|
UPDATE | 指定されたテーブルの列を UPDATE することができます。 SELECT ... FOR UPDATE には、この権限に加えて SELECT 権限が必要です。
|
DELETE | 指定されたテーブルの行を DELETE することができます。
|
REFERENCES | 外部キー制約を作成できます。 外部キー制約を作成する場合は、参照するテーブルと参照されるテーブルの両方に対してこの権限が必要です。 |
EXECUTE | 指定したパッケージ、ストアドプロシージャ、または関数を使用できます。 パッケージに対するこの権限により、パッケージ内のすべてのパブリックストアドプロシージャ、パブリック関数、パブリック変数、レコード、カーソル、およびその他のパブリックオブジェクトとオブジェクトタイプを使用できます。
これは、関数、ストアドプロシージャ、およびパッケージに適用できる唯一の権限タイプです。
Oracle と互換性のある PolarDB データベースの |
ALL PRIVILEGES | 使用可能なすべての権限を一度に付与します。 |
他のコマンドに必要な権限の詳細については、対応するコマンドのページをご参照ください。