7.9 Create an Oracle Wallet for an Oracle Machine Learning for R Connection
An Oracle wallet is a password-protected container for storing security credentials in Oracle Database.
Wallets provide a secure mechanism for specifying connection details in embedded R scripts.
To create a wallet for an OML4R connection:
-
Start Oracle Wallet Manager:
-
(Linux and UNIX) At the command line, enter
owm
. -
(Windows) Select Start, Programs, Oracle-HOME_NAME, Integrated Management Tools, Wallet Manager.
-
-
To create the wallet, follow the instructions in the Oracle Database documentation for your supported platform:
- For Oracle Database 12c and later, go to the Oracle Database Documentation page in Oracle Help Center.
- Select your version of Oracle Database.
- In the Topics section, select Security.
- In the Centralized User Management section, select Oracle Database Enterprise User Security Administrator's Guide.
- See the chapter Using Oracle Wallet Manager.
For Oracle Database 11c, Release 11.2.0.4, see
Using Oracle Wallet Manager
in Oracle Database Advanced Security Guide. -
Locate the connection string for the OML4R database in
tnsnames.ora
. For example:mydb_test = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = myserver) (PORT = 1521) ) (CONNECT_DATA = (sid=ORCL)) )
-
Specify the connection information in the wallet. Follow the instructions in the Oracle Database security documentation referenced in Step 2.
-
After you configure the wallet, you can connect to the OML4R server database by simply specifying the connection identifier. For example:
ore.connect(conn_string = "mydb_test", all = TRUE)
To learn more about
ore.connect
, use the R help command:help(ore.connect)
To Configure an Oracle Wallet for Use with External Procedures
- Create a wallet
store.
$ mkstore -create -wrl /home/oracle/wallet
When prompted to do so, assign a username and password. This example uses the database user OML_USER with the password
apassword
and the PDB ORCL. - Assign wallet
credentials.
$ mkstore -wrl /home/oracle/wallet -createCredential ORCL oml_user apassword
- In SQL*Plus, log in as OML_USER using the
wallet.
$ sqlplus /@ORCL
- Show the
user.
SQL> show user; USER is "OML_USER"
Example 7-4 Testing the Wallet Connection
This example tests using embedded R execution in the wallet connection in an
OML4R session. The example uses the iris
data set that is in the datasets
package that is included in an R
distribution.
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)
Listing for This Example
> 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
Note:
In embedded R execution, an R function that creates a database connection will fail because Oracle Database does not support recursive external procedures. To connect an embedded R execution function to a database, use theore.connect
special control argument.
Parent topic: Administrative Tasks for Oracle Machine Learning for R