7.4 Oracle Machine Learning for SQLのモデルとデータへのアクセス制御

リストされているステップに従うことで、Oracle Machine Learning for SQLユーザーを作成し、必要な権限を付与できます。

7.4.1 Oracle Machine Learning for SQLユーザーの作成

OML4SQLユーザーは、機械学習操作を実行する権限を持つデータベース・ユーザー・アカウントです。

例7-6では、データベース・ユーザーの作成方法を示しています。例7-7では、ユーザーにデータ・マイニング機械学習権限を割り当てる方法を示しています。

ノート:

OML4SQLの例のユーザーを作成するには、OML4SQLの例のインストールの説明に従って2つの構成スクリプトを実行する必要があります。

例7-6 SQL*Plusでのデータベース・ユーザーの作成

  1. システム権限を使用してSQL*Plusにログインします。

     
    Enter user-name: sys as sysdba
    Enter password: password
    
  2. oml_userというユーザーを作成するには、次のコマンドを入力します。選択したパスワードを指定します。

    CREATE USER oml_user IDENTIFIED BY password
           DEFAULT TABLESPACE USERS
           TEMPORARY TABLESPACE TEMP
           QUOTA UNLIMITED ON USERS;
    Commit;
    

    USERSおよびTEMP表領域は、Oracle Databaseに含まれています。USERSは主にデモ・ユーザーによって使用されるため、OML4SQLの例についてで説明されている例の実行に適しています。TEMPは、ほとんどのデータベース・ユーザーによって共有される一時表領域です。

    ノート:

    OML4SQLユーザー用の表領域は、システム・ロードとシステム・リソースに応じて、標準的なDBAの手順に従って割り当てる必要があります。

  3. oml_userとしてログインするには、次のコマンドを入力します。

    
    CONNECT oml_user
    Enter password: password

関連項目:

CREATE USER文の完全な構文については、『Oracle Database SQL言語リファレンス』を参照してください。

7.4.1.1 Oracle Machine Learning for SQLの権限の付与

CREATE MINING MODELは、モデルに対して操作を作成および実行するために必要な権限です。その他の機械学習権限の一部は、GRANT文を発行することで割り当てることができます。

独自のスキーマにモデルを作成するには、CREATE MINING MODEL権限を所有している必要があります。所有しているモデルに対しては、どのような操作も実行できます。これには、モデルの適用、コスト・マトリックスの追加、モデルの名前の変更、およびモデルの削除が含まれます。

次の例のGRANT文では、基本的な機械学習権限のセットをoml_userアカウントに割り当てます。これらの権限のうちの一部はすべての機械学習操作に必要とは限りませんが、これらすべてをグループとして付与することをお薦めします。

特定の機械学習操作の有効化または制限を行うには、追加のシステム権限およびオブジェクト権限が必要です。

次の表に、OML4SQLの例の実行に必要なシステム権限をリストします。

表7-2 dmshgrants.sqlによってOML4SQLユーザーに付与されるシステム権限

権限 OML4SQLユーザーに次の操作を許可

CREATE SESSION

データベース・セッションへのログイン

CREATE TABLE

表(CREATE_MODEL用の設定表など)の作成

CREATE VIEW

ビュー(SHスキーマの表のビューなど)の作成

CREATE MINING MODEL

OML4SQLモデルの作成

EXECUTE ON ctxsys.ctx_ddl

ctxsys.ctx_ddl PL/SQLパッケージのプロシージャの実行(テキスト・マイニングには必須)

例7-7 機械学習に必要な権限

この例では、必要な権限をユーザーoml_userに付与します。

GRANT CREATE SESSION TO oml_user;
GRANT CREATE TABLE TO oml_user;
GRANT CREATE VIEW TO oml_user;
GRANT CREATE MINING MODEL TO oml_user;
GRANT EXECUTE ON CTXSYS.CTX_DDL TO oml_user;

自分のスキーマ内にないデータに対してはREADまたはSELECT権限が必要です。たとえば、次の文は、sh.customers表にSELECTアクセス権を付与します。

GRANT SELECT ON sh.customers TO oml_user;

7.4.2 Oracle Machine Learning for SQLのためのシステム権限

システム権限は、データベース内の特定のアクションを実行する権限または1つのタイプのスキーマ・オブジェクトに対してアクションを実行する権限を付与します。たとえば、表領域を作成する権限や、データベース内の任意の表から行を削除する権限などがシステム権限です。

適切なシステム権限を所有している場合、他のスキーマの機械学習モデルに対しても特定の操作を実行できます。たとえば、CREATE ANY MINING MODELを所有している場合、他のスキーマにモデルを作成できます。SELECT ANY MINING MODELを所有している場合、他のスキーマにあるモデルを適用できます。モデルにコメントを追加するには、COMMENT ANY MINING MODEL権限を所有している必要があります。

システム権限を付与するには、ADMIN OPTIONを指定したシステム権限またはGRANT ANY PRIVILEGEシステム権限が付与されている必要があります。

次の表に示されているシステム権限は、機械学習モデルに対する操作を制御します。

表7-3 Oracle Machine Learning for SQLのためのシステム権限

システム権限 許可される操作

CREATE MINING MODEL

ユーザーのスキーマに機械学習モデルを作成する。

CREATE ANY MINING MODEL

任意のスキーマに機械学習モデルを作成する。

ALTER ANY MINING MODEL

任意のスキーマ内の任意の機械学習モデルの名前またはコスト・マトリックスを変更する。

DROP ANY MINING MODEL

任意のスキーマ内の機械学習モデルを削除する。

SELECT ANY MINING MODEL

任意のスキーマ内の機械学習モデルの適用および任意のスキーマ内のモデルの詳細の表示を行う。

COMMENT ANY MINING MODEL

任意のスキーマ内の任意の機械学習モデルへコメントを追加する。

AUDIT_ADMINロール

任意のスキーマ内の任意の機械学習モデルの監査証跡を生成する。(詳細は、『Oracle Databaseセキュリティ・ガイド』を参照。)

例7-8 Oracle Machine Learning for SQLのシステム権限の付与

次の文は、oml_userによる任意のスキーマ内のデータのスコアリングおよびモデルの詳細の表示を許可します(SELECTアクセス権がデータに付与されている場合)。ただし、oml_useroml_userスキーマにのみモデルを作成できます。

GRANT CREATE MINING MODEL TO oml_user;
GRANT SELECT ANY MINING MODEL TO oml_user;

次の文は、他のスキーマ内のスコアリングまたはモデルの詳細の表示の権限を取り消します。この文が実行された場合、oml_useroml_userスキーマでのみ機械学習操作を実行できます。

REVOKE SELECT ANY MINING MODEL FROM oml_user;

7.4.3 Oracle Machine Learning for SQLのモデルのオブジェクト権限

機械学習のオブジェクト権限について学習します。

オブジェクト権限は、特定のスキーマ・オブジェクトに対して特定のアクションを実行する権限を付与します。たとえば、SH.PRODUCTS表から行を削除する権限は、オブジェクト権限の例です。

ユーザーには、自身のスキーマに含まれるスキーマ・オブジェクトに対するオブジェクト権限がすべて自動的に付与されています。ユーザーは、自身のスキーマのオブジェクトに対するオブジェクト権限を、他のユーザーまたはロールに付与できます。

次の表に示されているオブジェクト権限は、特定の機械学習モデルに対する操作を制御します。

表7-4 Oracle Machine Learning for SQLのモデルのオブジェクト権限

オブジェクト権限 許可される操作

ALTER MINING MODEL

特定の機械学習モデル・オブジェクトの名前またはコスト・マトリックスを変更する。

SELECT MINING MODEL

特定の機械学習モデル・オブジェクトの適用およびそのモデルの詳細表示を行う。

例7-9 Oracle Machine Learning for SQLのモデルに対するオブジェクト権限の付与

次の文は、oml_userによるsales表へのモデルtestmodelの適用を許可し、適用ごとに異なるコスト・マトリックスを指定します。ユーザーoml_userは、モデルtestmodelの名前を変更することもできます。testmodelモデルおよびsales表は、oml_userスキーマ内ではなく、shスキーマ内にあります。

GRANT SELECT ON MINING MODEL sh.testmodel TO oml_user;
GRANT ALTER ON MINING MODEL sh.testmodel TO oml_user;
GRANT SELECT ON sh.sales TO oml_user;

次の文は、oml_usertestmodelのコスト・マトリックスの名前の変更またはコスト・マトリックスの変更を行うのを防ぎます。ただし、oml_userは引き続きtestmodelsales表に適用できます。

REVOKE ALTER ON MINING MODEL sh.testmodel FROM oml_user;