Oracle Machine Learning for SQLユーザーの作成
OML4SQLユーザーとは、機械学習の操作を実行する権限があるデータベース・ユーザー・アカウントのことです。
例8-6 SQL*Plusでのデータベース・ユーザーの作成
- 
                        システム権限を使用してSQL*Plusにログインします。 Enter user-name: sys as sysdba Enter password: password
- 
                        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の慣例に従って割り当てる必要があります。 
- 
                        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ユーザーに許可される操作 | 
|---|---|
| 
 | データベース・セッションへのログイン | 
| 
 | 表( | 
| 
 | ビュー( | 
| 
 | OML4SQLのモデルの作成 | 
| 
 | 
 | 
例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のためのシステム権限
例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のモデルのオブジェクト権限
| オブジェクト権限 | 許可される操作 | 
|---|---|
| 
 | |
| 
 | 
例8-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_userによるtestmodelのコスト・マトリックスの名前の変更またはコスト・マトリックスの変更を禁止します。ただし、oml_userは引き続きtestmodelをsales表に適用できます。
                     
REVOKE ALTER ON MINING MODEL sh.testmodel FROM oml_user;