40.4 セキュア
リストされているステップに従うことで、Oracle Machine Learning for SQLユーザーを作成し、必要な権限を付与できます。
40.4.1 Oracle Machine Learning for SQLユーザーの作成
OML4SQLユーザーとは、機械学習の操作を実行する権限があるデータベース・ユーザー・アカウントのことです。
例40-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言語リファレンス』を参照してください。
40.4.1.1 Oracle Machine Learning for SQLの権限の付与
CREATE MINING MODEL
は、モデルに対して操作を作成および実行するために必要な権限です。その他の機械学習権限の一部は、GRANT
文を発行することで割り当てることができます。
独自のスキーマにモデルを作成するには、CREATE MINING MODEL
権限を所有している必要があります。所有しているモデルに対しては、どのような操作も実行できます。これには、モデルの適用、コスト・マトリックスの追加、モデルの名前の変更、およびモデルの削除が含まれます。
次の例のGRANT
文では、基本的な機械学習の権限のセットをoml_user
アカウントに割り当てます。これらの権限の一部は、すべての機械学習の操作に必要なわけではありませんが、すべてをグループとして付与することをお薦めします。
機械学習の特定の操作を有効化または制限するために、追加のシステム権限およびオブジェクト権限が必要です。
次の表に、OML4SQLの例を実行するために必要なシステム権限を示します。
表40-2 dmshgrants.sqlによってOML4SQLユーザーに付与されるシステム権限
権限 | OML4SQLユーザーに許可される操作 |
---|---|
|
データベース・セッションへのログイン |
|
表( |
|
ビュー( |
|
OML4SQLのモデルの作成 |
|
|
例40-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;
40.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
システム権限が付与されている必要があります。
次の表に示したシステム権限では、機械学習のモデルに対する操作を制御します。
表40-3 Oracle Machine Learning for SQLのためのシステム権限
例40-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;
40.4.3 Oracle Machine Learning for SQLのモデルのオブジェクト権限
機械学習のオブジェクト権限について学習します。
オブジェクト権限は、特定のスキーマ・オブジェクトに対して特定のアクションを実行する権限を付与します。たとえば、SH.PRODUCTS
表から行を削除する権限は、オブジェクト権限の例です。
ユーザーには、自身のスキーマに含まれるスキーマ・オブジェクトに対するオブジェクト権限がすべて自動的に付与されています。ユーザーは、自身のスキーマのオブジェクトに対するオブジェクト権限を、他のユーザーまたはロールに付与できます。
次の表に示したオブジェクト権限では、特定の機械学習のモデルに対する操作を制御します。
表40-4 Oracle Machine Learning for SQLのモデルのオブジェクト権限
オブジェクト権限 | 許可される操作 |
---|---|
|
|
|
例40-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;