オブジェクトを作成、変更または破棄する権限の概要
データベース・オブジェクトの作成、変更または破棄に必要な権限があります。
データベース・オブジェクトを作成する権限
表、ビュー、マテリアライズド・ビュー、順序、PL/SQLプロシージャ、PL/SQLファンクション、PL/SQLパッケージ、シノニムなどのデータベース・オブジェクトを作成するには、適切なCREATE
object_type
またはCREATE ANY
object_type
権限が必要です。
次に、CREATE
権限およびCREATE ANY
権限について説明します。
-
CREATE
object_type
権限は、ユーザー自身のスキーマ内でのみ、指定したタイプ(TABLE
など)のオブジェクトを作成する機能を付与します。作成後、ユーザーはオブジェクトを所有し、そのオブジェクトに対するすべての権限を持ちます。 -
CREATE ANY
object_type
権限は、データベースの任意のスキーマでそのタイプのオブジェクトを作成する機能をユーザーに付与します。CREATE ANY
object_type
権限には、CREATE ANY TABLE
、CREATE ANY INDEX
、CREATE ANY VIEW
、CREATE ANY MATERIALIZED VIEW
、CREATE ANY SEQUENCE
、CREATE ANY SYNONYM
およびCREATE ANY PROCEDURE
があります。
次の例のように、ユーザーが自分のスキーマに表を作成するにはCREATE TABLE
権限を付与されている必要があります。
Command> GRANT CREATE TABLE TO terry;
次の例では、ユーザーterry
に任意のスキーマで任意の表を作成する権限を付与します。
Command> GRANT CREATE ANY TABLE TO terry;
ノート:
-
「ビューのオブジェクト権限」および「マテリアライズド・ビューのオブジェクト権限」を参照してください。
-
CREATE OR REPLACE
の結果としてオブジェクト(プロシージャ、ファンクション、パッケージ、シノニムなど)が置き換えられても、そのオブジェクトに対してユーザーに付与されていた権限には影響ありません。このこととは対照的に、明示的にDROP
を実行してからCREATE
を実行してオブジェクトを再作成した場合、そのオブジェクトに対するすべての権限が取り消されます。
データベース・オブジェクトを変更する権限
ALTER ANY
object_type
権限は、自分が所有していないオブジェクトのプロパティを変更する場合に必要です。
たとえば、プロシージャproc1
がhr
スキーマに作成され、pat
にALTER ANY PROCEDURE
権限が付与されている場合、pat
はプロシージャhr.proc1
を変更できます。
ALTER
権限は、個々のオブジェクトに対しては付与できません。かわりに、必要なオブジェクト・タイプに対するALTER ANY
権限を付与する必要があります。