7.9 Oracle Machine Learning for R接続のOracleウォレットの作成
Oracleウォレットは、Oracle Databaseのセキュリティ資格証明書の格納に使用する、パスワードで保護されたコンテナです。
ウォレットを使用することで、埋込みRスクリプトで接続の詳細を指定するためのセキュアなメカニズムが得られます。
OML4R接続のウォレットを作成するには:
-
Oracle Wallet Managerを起動します。
-
(LinuxおよびUNIXの場合)コマンド・ラインで
owm
と入力します。 -
(Windowsの場合)「スタート」→「プログラム」→「Oracle-HOME_NAME」→「統合管理ツール」→「Wallet Manager」の順に選択します。
-
-
ウォレットを作成するには、ご使用のサポートされているOracle Databaseのドキュメントの手順に従います。
- Oracle Database 12c以降の場合は、Oracle Help CenterのOracle Database Documentationページにアクセスしてください。
- Oracle Databaseのバージョンを選択します。
- 「Topics」セクションで、「Security」を選択します。
- 「Centralized User Management」セクションで、Oracle Database Enterprise User Security Administrator's Guideを選択します。
- Oracle Wallet Managerの使用方法の章を参照してください。
Oracle Database 11c、リリース11.2.0.4の場合は、Oracle Database Advanced Securityガイドの
Oracle Wallet Managerの使用方法
を参照してください。 -
tnsnames.ora
で、OML4Rデータベース用の接続文字列を探します。たとえば:mydb_test = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = myserver) (PORT = 1521) ) (CONNECT_DATA = (sid=ORCL)) )
-
ウォレットに接続情報を指定します。ステップ2で参照されている、Oracle Databaseのセキュリティに関するドキュメントのステップに従います。
-
ウォレットを構成した後は、接続識別子を指定するだけで、OML4Rサーバーのデータベースに接続できます。たとえば:
ore.connect(conn_string = "mydb_test", all = TRUE)
ore.connect
についてさらに学習するには、次のようにRヘルプ・コマンドを使用します。help(ore.connect)
外部プロシージャで使用するOracle Walletを構成するには
- ウォレット・ストアを作成します。
$ mkstore -create -wrl /home/oracle/wallet
プロンプトが表示されたら、ユーザー名とパスワードを割り当てます。この例では、データベース・ユーザーOML_USERとパスワード
apassword
およびPDB ORCLを使用します。 - ウォレット資格証明を割り当てます。
$ mkstore -wrl /home/oracle/wallet -createCredential ORCL oml_user apassword
- SQL*Plusで、ウォレットを使用してOML_USERとしてログインします。
$ sqlplus /@ORCL
- ユーザーを表示します。
SQL> show user; USER is "OML_USER"
例7-4 ウォレット接続のテスト
この例では、OML4Rセッションのウォレット接続で埋込みRの実行を使用してテストします。この例では、R Distributionに含まれているdatasets
パッケージにあるiris
データセットを使用します。
ore.doEval(function(){print("TEST")})
TEST_WALLET_DF
function() {
return(as.data.frame(length(iris)))
}
ore.scriptLoad("TEST_WALLET_DF")
ore.doEval(FUN.NAME="TEST_WALLET_DF")
length(iris)
この例のリスト
> ore.doEval(function(){print("TEST")})
[1] "TEST"
>
> TEST_WALLET_DF
function() {
return(as.data.frame(length(iris)))
}
>
> ore.scriptLoad("TEST_WALLET_DF")
>
> ore.doEval(FUN.NAME="TEST_WALLET_DF")
> length(iris)
1 5
ノート:
Oracle Databaseは再帰的な外部プロシージャをサポートしていないため、埋込みRの実行では、データベース接続を作成するR関数は失敗します。埋込みRの実行関数をデータベースに接続するには、ore.connect
という特別な制御引数を使用します。