Orapki Not Found - oracle

After installing Oracle Database 21c on a red hat instance with its instantclients (sqlplus, basic and additional tools[datapump etc]) I noticed orapki is missing to configure self signed certificates.
I checked the oracle download page however I didn't notice anything concerning orapki cli to download.

Related

How can I see what certificates are associated with an oracle wallet?

While troubleshooting an ORA-24263 error ("ORA-24263: Certificate of the remote server does not match the target address"), I came across this "UTL_HTTP and SSL (HTTPS) using Oracle Wallets" article which describes, in part, how to add site certificates to an Oracle wallet.
I understand that Oracle 12+ no longer allows wildcard certificates in the same way; that perhaps the UTL_HTTP.request() call requires the setting of a https_host parameter. Notably, the ORA-24263 error emerged in our environment only once we upgraded to Oracle19c.
I'd like to see the certificates associated with the pre-existing, previously-working, Oracle wallet entry. How can I see what certificates are associated with an oracle wallet?
A ORACLE wallet is just a ZIP file with several files: .p12, .pem, .sso, .jks… that you can look in using java keytool among others...

Unable to connect to Oracle database from SSAS

I am attempting to create a Sql Server Analysis Services Tabular Model and am having trouble accessing an Oracle database for importing data. I am using the following:
OS
-Windows 10 Enterprise (I am administrator of machine)
Tools to create tabluar cube:
-Visual Studio Community 2022 (64 bit) - Current Version 17.2.5
-SQL Server Analysis Services 15.0.2000.5 - Developer Edition (installed on localhost, services running)
Oracle database:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 Production Version 21.3.0.0.0 - Developer Edition (installed on localhost), up and running and able to connect with other tools (e.g. Toad, Sqlplus, SqlDeveloper, cx_python, etc..)
I have a 64-Bit System Data Source Name created for ODBC connections, using Oracle Instant Client. This data source works just fine with other tools mentioned in the Oracle databse section above.
When creating a SSAS tabular model in Visual Studio and attemping to import a data source, I try the following:
Models
-TabularProject (my project)
-Data Sources > New Data Source > Oracle Database
At this point I get the following message:
Oracle Database
The recommended provider ('Oracle.DataAccess.Client') is not installed. You can continue with your current provider, however, it has been deprecated and may not work correctly.
and I click 'OK'.
From here, I enter the connection string of my locally hosted oracle database (localhost:1521/MY_DB.
When prompted for credentials, I select 'Database' and then enter the correct username/password to connect to my locally hosted oracle database.
Then I receive an error stating:
Unable to connect
We encountered an error while trying to connect.
Details: "An error happened while reading data from the provider: 'Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.'"
I've also tried the following method:
Models
-TabularProject (my project)
-Data Sources > New Data Source > ODBC
Then I choose my ODBC datasource for my locally hosted database (which seems to work fine for other apps) and I receive the following error:
Unable to connect
We encountered an error while trying to connect.
Details: "ODBC: ERROR [IM014] The specified DSN contains an architecture mismatch between the Driver (64-bit) and Application (32-bit)"
I have installed various Oracle Drivers including:
-64-bit ODAC: ODAC122010Xcopy_x64.zip
-64-bit instantclient basic: instantclient-basic-windows.x64-21.6.0.0.0dbru.zip
-64-bit instantclient odbc: instantclient-odbc-windows.x64-21.6.0.0.0dbru.zip
-64-bit instantclient sqlplus: instantclient-sqlplus-windows.x64-21.6.0.0.0dbru.zip
I have also tried these same steps for a remote hosted Oracle database (using both ezconnect string and a ODBC DSN) and even though the connections work just fine with other apps, it doesn't work with SSAS for some reason.
Any and all insight advice to get my SSAS tabular model connected to Oracle databases would be very much appreciated.
EDIT:
I have tried following a solution from this similar question and create a dsn, suffixed with _64, using only the 64-bit ODBC manager, yet I get the same results when trying to use that DSN with SSAS.
I have also tried the following steps, per Microsoft:
From https://learn.microsoft.com/en-us/sql/reporting-services/report-data/oracle-connection-type-ssrs?view=sql-server-ver16#64-bit-and-32-bit-drivers-for-power-bi-desktop:
2. Register ODP.NET Unmanaged Client to GAC:
C:\Oracle\odp.net\bin\4\OraProvCfg.exe /action:gac /providerpath:C:\Oracle\odp.net\bin\4\Oracle.DataAccess.dll
3. Add ODP.NET Unmanaged Client entries to machine.config:
C:\Oracle\odp.net\bin\4\OraProvCfg.exe /action:config /force /product:odp /frameworkversion:v4.0.30319 /providerpath:C:\Oracle\odp.net\bin\4\Oracle.DataAccess.dll
Yet, I still receive all errors shown above.

How to get Oracle Wallet Manager for Windows 10

I want to install Oracle Wallet Manager for Windows 10 and for Oracle Database 11.2.
When I download the corresponding version of Oracle Client, I don't see the Oracle Wallet Manager OWM or orapki being part of the download (https://www.oracle.com/in/database/technologies/instant-client/winx64-64-downloads.html)
I don't have the database installed on my Windows machine.
My requirement is to connect to Oracle 11.2 database which is in cloud from a Java program running in Windows PC. I would like to connect to the database from credentials stored in Wallet. (Java program will not need to store database credentials).
The wallet tools are on the full client and on the database server, not on the instant-client.
https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/nt/oracle19c/193000/WINDOWS.X64_193000_client_home.zip

How to connect to Oracle 21c in Oracle Cloud from DataGrip

I have created an Autonomous Transaction Processing database in Oracle Cloud. There are no ready-for-use JDBC links around, but there are "wallets". There is an instance wallet and regional wallet. Oracle says one of them, preferably instance wallet, should be used to connect to this DB instance.
A wallet is a ZIP file with a dozen of files inside. I've downloaded an instance wallet and unzipped it. Now I'm trying to connect DataGrip to this instance.
There is a TNS connection type in DataGrip and there is a famous tnsnames.ora in the wallet, so I guess I should use them. TNS connection type accepts a TNSADMIN parameter, which, I guess, is a directory of that wallet. tnsnames.ora from the wallet lists a few service names, AFAIU they differ by their priority, e.g. one for low-priority queries, another for medium-priority and one for the highest priorities question. I'm OK with medium priority, so I did this:
As you see, I'm getting an error:
[08006][17002] IO Error: The Network Adapter could not establish the connection
SSO KeyStore not available.
I've googled around, but this topic seems to be complicated. Oracle has a lot of connection parameters with certificates involved in the connection process, and I'm really new and I just want to connect to this instance. Why it should be so complicated? Can I use this wallet directly in DataGrip?
It seems that I've did everything correctly and the only problem is actually the driver version.
As of today, 2021-02-02, the latest available Oracle driver version in DataGrip is 19.8.0.0:
To fix the issue I've just created another Oracle driver in DataGrip and manually provided the latest JARs:
Go to the Oracle Database 21c (21.1) JDBC Driver & UCP Downloads
Download the ZIPped JDBC driver and companion JARs corresponding to your Java version: 8 or 11. Or just download the version for Java 8 (ojdbc8-full.tar.gz). It should work with any modern Java.
Create new subdirectory in the DataGrip's drivers directory for you driver. Something like ~/.config/JetBrains/DataGrip2020.3/jdbc-drivers/Oracle/21.1 for Linix.
Unzip the driver in that directory.
Configure new driver in DataGrip. Just clone the existing Oracle driver and replace the "Driver Files" with the ones from the ZIP.
Use this new driver to connect to the instance:
DataGrip 2021.1 provides Oracle JDBC Driver 21.1.0.0 with all required jar files.
Also, read DataGrip article about connection to Oracle using wallets.

Use Oracle Wallet without installing the Oracle Client

I am using OCI lib to connect a client application to Oracle database. I would like to use Wallet to store the keys but it looks like the only way to store the key in Wallet is by using mkstore or orapki.
Those tools are available when installing Oracle Client but I don't want my customers to download Oracle Client on their machine.
Is there any way that I can create and store the credentials in a Wallet without installing Oracle Client? Can I redistribute orapki or mkstore? Is there any API?

Resources