8.4 Oracle Machine Learning for SQLのモデルおよびデータへのアクセスの制御
Oracle Machine Learning for SQLユーザーの作成方法および必要な権限の付与方法について理解します。
8.4.1 Oracle Machine Learning for SQLのユーザーの作成
OML4SQLのユーザーを作成するステップについて説明します。
OML4SQLユーザーは、機械学習操作を実行する権限を持つデータベース・ユーザー・アカウントです。例8-6では、データベース・ユーザーの作成方法を示しています。例8-7では、ユーザーにデータ・マイニング機械学習権限を割り当てる方法を示しています。
例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
は主にデモ・ユーザーによって使用されるため、Oracle Machine Learning for SQLの例で説明されている例の実行に適しています。TEMP
は、ほとんどのデータベース・ユーザーによって共有される一時表領域です。ノート:
OML4SQLユーザー用の表領域は、システム・ロードとシステム・リソースに応じて、標準的なDBAの手順に従って割り当てる必要があります。
-
oml_user
としてログインするには、次のコマンドを入力します。CONNECT oml_user Enter password:
password
関連項目:
CREATE USER
文の完全な構文については、『Oracle Database SQL言語リファレンス』を参照してください。
8.4.1.1 Oracle Machine Learning for SQLの権限の付与
OML4SQLで必要な権限について説明し、それらの権限を割り当てる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;
8.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
システム権限が付与されている必要があります。
次の表に示されているシステム権限は、機械学習モデルに対する操作を制御します。
表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;
8.4.3 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;