Oracle でのジオデータベースの権限

権限によって、データおよびデータベースに対してユーザーが許可される操作を決定します。 権限は、 このユーザーがジオデータベースの管理に関与するか、 データを編集または作成できる必要があるか、 データを検索できれば十分かといった、組織内でのユーザーの職務に基づいて割り当てる必要があります。

Oracle データベースで実行する必要のある操作内容に基づいて、ユーザーに特定の権限を割り当てる必要があります。 一部の権限はロールに割り当てることができますが、その他の権限はユーザーに直接割り当てる必要があります。 ユーザー権限は、さまざまなレベルで設定されます。

このトピックの最初のセクションでは、すべてのユーザーに必要なパッケージの権限について説明します。 これらの権限は、ジオデータベースの作成またはアップグレードのために public ロールに付与する必要があります。 ただし、この権限をジオデータベースの作成またはアップグレード後にすべての個別ユーザーに付与することで public ロールから取り消すことができます。

2 つ目のセクションでは、共通タイプのユーザー (データ参照者、データ編集者、データ作成者、ジオデータベース管理者) に最小限必要なデータベース権限について説明します。 これらの権限は、最初のセクションに示した権限に追加で必要なものです。

3 つ目のセクションは、ジオデータベースの作成またはアップグレードのためにジオデータベース管理者が必要とする権限を示しています。 これらの権限も、最初のセクションに示した権限に追加で必要なものです。

最後のセクションは、Oracle 内のジオデータベースのユーザーに一般的に割り当てられるオプションの権限を示しています。

ユーザー権限の管理には、Oracle Enterprise Manager を使用できます。 また、SQL ステートメントを使用して、権限の付与と取り消しを行うこともできます。

このページに表示される権限は、OracleAutonomous Transaction Processing database in Oracle Cloud、および Amazon Relational Database Service (RDS) for Oracle に適用されます。

パッケージの権限

次のパッケージには実行権限が必要です。

  • dbms_lob
  • dbms_lock
  • dbms_pipe
  • dbms_utility
  • dbms_sql
  • utl_raw

ジオデータベースを作成したりアップグレードするには、これらのパッケージに対する実行権限を public ロールに付与する必要があります。

GRANT EXECUTE ON dbms_pipe TO public;
GRANT EXECUTE ON dbms_lock TO public;
GRANT EXECUTE ON dbms_lob TO public;
GRANT EXECUTE ON dbms_utility TO public;
GRANT EXECUTE ON dbms_sql TO public;
GRANT EXECUTE ON utl_raw TO public;

ヒント:

Oracle では、dbms_utility、dbms_sql、utl_raw に対する実行権限がデフォルトで public ロールに付与されます。 したがって、public から明示的に取り消した場合に限り、これらのパッケージに対する実行権限を付与する必要があります。

ジオデータベースの作成またはアップグレードが完了したら、public ロールから権限を削除し、ジオデータベースにログインする個々のユーザー (ジオデータベース管理者を含む) に権限を付与することで、これらのパッケージに対する権限を制限することができます。

注意:

ユーザー ロールを介して割り当てられた権限は Oracle パッケージの実行時には適用されないため、実行権限をロールに割り当ててから、そのロールをすべてのユーザーに割り当てることで実行権限を付与することはできません。

実行権限を個々のユーザーに付与したら、sde スキーマを再コンパイルします。

EXEC dbms_utility.compile_schema( 'SDE' );

最小限の権限

前のセクションで説明した権限以外に、次に示す種類のユーザーには以下の権限が必要です。

Oracle での最小権限

ユーザーの種類データベースの権限データセットの権限備考

データ参照者

  • CREATE SESSION

データベース オブジェクトの SELECT

データ編集者

  • CREATE SESSION

他のユーザーが所有しているデータセットに対する SELECT、INSERT、UPDATE、DELETE

ArcGIS を使用して、従来のバージョン対応登録されたフィーチャクラスまたはテーブルに対する SELECT、INSERT、UPDATE、および DELETE 権限を付与すると、関連するバージョン対応ビューに対してこれらの権限が自動的に付与されます。 これらの権限は、ユーザーが SQL およびバージョン対応ビューを使用して編集する際に必須です。

データ作成者

  • CREATE SEQUENCE
  • CREATE SESSION
  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE VIEW

ジオデータベース管理者

  • CREATE PROCEDURE
  • CREATE SEQUENCE
  • CREATE SESSION
  • CREATE TABLE
  • CREATE TRIGGER

ジオデータベースのデータセットの権限の付与や取り消しは、ArcGIS クライアントを使用して、データセット所有者が行う必要があります。

ジオデータベースの作成またはアップグレードに必要な権限

Oracle 内のジオデータベースを作成またはアップグレードするためにジオデータベース管理者に付与する必要のある権限を次の表に示します。 その権限または権限のグループが必要な理由も示してあります。 以下の表の「目的」列、および前述のジオデータベース管理者に最低限必要な権限の表でも説明していますが、これらの権限の一部は作成またはアップグレードが完了した後に削除することができます。

最初の表は、sde ユーザーがジオデータベースを作成するために必要な権限を示しています。

2 番目の表は、sde ユーザーがジオデータベースをアップグレードするのに必要な権限を示しています。

権限は、ジオデータベースの作成およびアップグレードにおける目的ごとにグループ化されています。

ジオデータベースを作成するための Oracle sde ユーザー権限

権限目的
  • CREATE SESSION

Oracle への接続。

  • CREATE TABLE
  • CREATE TRIGGER

ジオデータベース リポジトリを作成します。

  • CREATE SEQUENCE

ID を生成するためのシーケンスを作成します。 この権限は、ジオデータベースの作成後に削除できます。

  • CREATE PROCEDURE

ジオデータベース システム テーブルのコンテンツを維持するためのパッケージを作成します。

  • EXECUTE ON DBMS_CRYPTO

ST_Geometry タイプのマップ メンバー関数を作成できます。この関数は、空間ユニオンまたは交差が実行されるたびに呼び出されます。

  • CREATE INDEXTYPE
  • CREATE LIBRARY*
  • CREATE OPERATOR
  • CREATE PUBLIC SYNONYM
  • CREATE TYPE
  • CREATE VIEW
  • DROP PUBLIC SYNONYM

ST_Geometry データ タイプとクエリ最適化に使用するタイプを作成します。 システム ビュー GDB_Items_vw および GDB_ItemRelationships_vw を作成するには、CREATE VIEW が必要です。 これらの権限は、ジオデータベースの作成後に削除できます。

*Autonomous Transaction Processing (ATP) database in Oracle Cloud でジオデータベースを作成する場合、CREATE LIBRARY は不要です。

  • ADMINISTER DATABASE TRIGGER

ST_Geometry 列を含むテーブルを SQL で削除、変更、名前変更した場合に、ST_GEOMETRY_COLUMNS および ST_GEOMETRY_INDEX テーブルを変更するのに必要なデータベース イベント トリガーを作成できるようにします。 PL/SQL トリガーの作成にも必要です。 この権限は、ジオデータベースの作成後に削除できます。

  • SELECT_CATALOG_ROLE

この権限は、Autonomous Transaction Processing database in Oracle Cloud でジオデータベースを有効化し、アップグレードする場合のみ必要です。 他のサポートされている Oracle 提供のデータベースではオプションです。

ジオデータベースをアップグレードするための Oracle sde ユーザー権限

権限目的
  • CREATE SESSION

Oracle への接続。

  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE VIEW

ジオデータベース リポジトリをアップグレードします。 CREATE VIEW 権限は、アップグレード後に削除できます。

  • CREATE PROCEDURE

ジオデータベース システム テーブルのコンテンツを維持するためのパッケージをアップグレードします。

  • CREATE SEQUENCE

ID を生成するためのシーケンスを更新します。 この権限は、アップグレード後に削除できます。

  • EXECUTE ON DBMS_CRYPTO

ST_Geometry タイプのマップ メンバー関数を更新します。この関数は、空間的な結合または交差が実行されるたびに呼び出されます。

  • CREATE INDEXTYPE
  • CREATE LIBRARY*
  • CREATE OPERATOR
  • CREATE PUBLIC SYNONYM
  • CREATE TYPE
  • DROP PUBLIC SYNONYM

ST_Geometry データ タイプとクエリ最適化に使用するタイプを更新します。 これらの権限は、アップグレード後に削除できます。

*ATP database in Oracle Cloud でジオデータベースをアップグレードする場合、CREATE LIBRARY は不要です。

  • ALTER ANY INDEX
  • CREATE ANY INDEX
  • CREATE ANY TRIGGER
  • CREATE ANY VIEW
  • DROP ANY INDEX
  • DROP ANY VIEW
  • SELECT ANY TABLE

ジオデータベース コンテンツをアップグレードします。

  • ADMINISTER DATABASE TRIGGER

ST_Geometry を含むテーブルを SQL で削除、変更、名前変更した場合に、ST_GEOMETRY_COLUMNS および ST_GEOMETRY_INDEX テーブルを変更するのに必要なデータベース イベント トリガーを作成できるようにします。 PL/SQL トリガーの作成にも必要です。 この権限は、アップグレード後に削除できます。

一般的なオプションの権限

多くの組織が、ジオデータベースの機能をさらに強化するために、Oracle の追加機能を利用しています。 ジオデータベース管理者用の一般的なオプションの権限と権限の目的を、次の表に示します。 権限は、目的別に分類してあります。

ジオデータベース管理者に割り当てられる Oracle のオプションの権限

権限付与されるユーザー目的
  • ALTER SESSION
  • PLUSTRACE

ジオデータベース管理者

SQL をトレースする SQL*Plus の AUTOTRACE 機能を有効にし、パフォーマンス チューニングやトラブルシューティングのためにセッション固有の初期化パラメーターを変更できるようにします。PLUSTRACE ロールは、ORACLE_HOME/sqlplus/admin/plustrce.sql を実行して作成します。

  • ALTER ANY INDEX
  • ANALYZE ANY
  • SELECT ANY DICTIONARY

ジオデータベース管理者

ジオデータベース管理者に割り当てて、Oracle の監視と基本的な管理タスクを実行できるようにします。

これは、ジオデータベース管理者が Oracle データベース管理者ではない組織で便利です。

  • CREATE DATABASE LINK
  • CREATE MATERIALIZED VIEW
  • CREATE VIEW

ジオデータベース管理者

これは、ジオデータベースをエンタープライズの他の非空間データベースと統合する際に役立ちます。

  • RESTRICTED SESSION

ジオデータベース管理者

データベースがオンラインであるがエンド ユーザーがアクセスできない状態でも、ジオデータベース管理者は管理を実行できます。

  • UNLIMITED TABLESPACE

ジオデータベース管理者

この権限を作成およびアップグレードを行うジオデータベース管理者に付与すると、データベースのジオデータベース管理者の表領域に、ジオデータベースの作成またはアップグレードを完了するための十分な格納領域があることが保証されます。領域の管理のために割り当て制限を設定している場合、この権限はジオデータベースの作成またはアップグレード後に削除できます。

  • ALTER SYSTEM
  • SELECT_CATALOG_ROLE*

ジオデータベース管理者

ジオデータベースから接続を削除するには、sde ユーザーにこれらの権限が必要です。 [エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ジオプロセシング ツールは、これらの権限を sde ユーザーに付与します。 このツールを実行した後に、sde ユーザーからこれらの権限を取り消すことができますが、そうすると、sde ユーザーはデータベースからユーザーを切断することができなくなります。

また、sde ユーザーをデータベース管理者ロールに追加して、そのユーザーがデータベースからユーザーを切断できるようにすることも可能です。

*SELECT_CATALOG_ROLE は、Autonomous Transaction Processing database in Oracle Cloud のジオデータベース管理者にはオプションではなく、必須です。

SELECT ON DBA_ROLES

データ作成者

データ作成者が [権限] ダイアログ ボックスを使用して自身のデータセットに対する権限をデータベース ロールに付与できるようにする場合、そのデータ作成者には、データベース内のロールのリストを取得するための DBA_ROLES に対する SELECT 権限が必要です。

INHERIT PRIVILEGES ON <ユーザー>

Or

INHERIT ANY PRIVILEGES ON <ユーザー>

sde

Data Pump による sde ユーザー スキーマのインポートの実行を別のユーザー (Oracle の sys ユーザーや system ユーザーなど) に許可する場合、この権限を sde ユーザーに付与する必要があります。

この権限は、ユーザー スキーマ ジオデータベースの所有者には適用されません。