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

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

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

ノート:

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

例8-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言語リファレンス』を参照してください。

Oracle Machine Learning for SQLの権限の付与

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

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

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

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

次の表に、OML4SQLの例を実行するために必要なシステム権限を示します。

表8-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パッケージ内のプロシージャの実行(テキスト・マイニングに必須)

例8-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;

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

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

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

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

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

表8-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 role

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

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

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

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

次の文は、他のスキーマ内のスコアリングまたはモデルの詳細の表示の権限を取り消します。この文を実行すると、oml_userは、oml_userスキーマ内で機械学習の操作の実行のみが可能になります。

REVOKE SELECT ANY MINING MODEL FROM oml_user;

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

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

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

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

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

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

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

ALTER MINING MODEL

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

SELECT MINING MODEL

特定の機械学習モデル・オブジェクトの適用と、そのモデルの詳細表示を実行する。

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

次の文により、oml_usersales表にモデル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_userによるtestmodelのコスト・マトリックスの名前の変更またはコスト・マトリックスの変更を禁止します。ただし、oml_userは引き続きtestmodelsales表に適用できます。

REVOKE ALTER ON MINING MODEL sh.testmodel FROM oml_user;