Blog Image

MaxSpirit - bevlogen ICT!

Melle Visser

https://www.maxspirit.nl

Oracle Wallet

Oracle Posted on Fri, November 02, 2018 13:20:34

Oracle gebruikt voor een aantal van zijn producten de Oracle Wallet om certificaten in op te slaan.
In deze post wordt een procedure beschreven hoe je deze zou kunnen aanmaken.

1. Maak of vraag een nieuw certificaat aan

bijvoorbeeld:
openssl req \
-new -newkey rsa:2048 -nodes \
-subj “/CN=voor.beeld.nl/O=bedrijf/OU=PO/C=NL/ST=Noord-Holland/L=Amsterdam” \
-keyout KEY_voor_beeld_nl.pem -out CSR_voor_beeld_nl.pem

Vraag een certificaat aan en verzamel de intermediate en root certificaten.
Maak daar vervolgens een p12 keystore van.

openssl pkcs12 -export -out CERT_voor_beeld_nl.p12 \
-inkey KEY_voor_beeld_nl.pem \
-in CERT_voor_beeld_nl.pem \
-certfile CARootIntermediates.pem

2. Converteer het p12 formaat naar een Java keystore formaat

$JAVA_HOME/jre/bin/keytool -v -importkeystore \
-srckeystore CERT_voor_beeld_nl.p12 -srcstoretype PKCS12 -srcstorepass geheim \
-destkeystore CERT_voor_beeld_nl.jks -deststoretype JKS -deststorepass geheim

3. Maak een Oracle Wallet aan

$ORACLE_HOME/oracle_common/bin/orapki wallet create -wallet ./ -pwd “geheim”

4. Importeer de Java keystore in de Oracle Wallet

$ORACLE_HOME/oracle_common/bin/orapki wallet jks_to_pkcs12 -wallet ./ -pwd “geheim” \
-keystore CERT_voor_beeld_nl.jks -jkspwd “geheim”

5. Zet auto_login aan op de Oracle Wallet voor de Oracle Webtier

$ORACLE_HOME/oracle_common/bin/orapki wallet create -wallet ./ -auto_login

De Oracle Wallet is klaar.
Er staan nu 2 bestanden in de directory
ewallet.p12 – Dit is de Oracle Wallet
cwallet.sso – Dit is de Oracle Wallet met auto-login

Voor gebruik in de Oracle Webtier kopieer je de cwallet.sso naar de gewenste lokatie.
Dit is de directory die staat geconfigureerd in de Webtier config file bij SSLWallet

Bijvoorbeeld:
<IfModule ossl_module>
SSLEngine on
SSLVerifyClient None
SSLCRLCheck Off
SSLWallet “/u01/oracle/certificates”
# SSL Protocol Support: Configure usable SSL/TLS protocol versions.
SSLProtocol ALL
# SSL Cipher Suite: List the ciphers that the client is permitted to negotiate.
SSLCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,SSL_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_AES_128_CBC_SHA
</IfModule>



Designer on Oracle 12c

Oracle Posted on Wed, November 02, 2016 12:28:49

Still using Oracle Designer?
And the Windows version has to be updated?
And the Oracle Database version as well?

Don’t Panic! It still works.

Install Oracle Designer with the Installer or Setup set on compatibility WinXP and run as Administrator.

You will find all the registry key now under:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE

When using Oracle Database 12c you will get an error when using the Oracle Designer java-based utilities, such as version compare.
The underlying error is: ORA-28040
This can be solved by adding the following entries to the sqlnet.ora in the ORACLE_HOME/network/admin folder of the database on the database server:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

now the jdbc drivers in the classes12.zip can connect to the Oracle 12c database.

Have Fun !



DBMS_SQLTUNE

Oracle Posted on Tue, January 29, 2013 22:42:19

Een AWR rapport maken is eenvoudig en geeft veel informatie terug over de database en de queries van dat moment.

sqlplus / as sysdba
@?/rdbms/admin/awrrpt

Vervolgens geeft je de snapshot id’s op waarover je een rapportage wil hebben.

Nu zien we een interessante cq. verdachte query en die willen we verder onderzoeken.
Dit kan door bijvoorbeeld DBA_HIST_SQLPLAN view te query-en, maar je kan het ook vragen aan de database middels DBMS_SQLTUNE.

sqlplus / as sysdba
SET SERVEROUTPUT ON

Maak een tuning task aan:
DECLARE
l_sql_tune_task_id VARCHAR2(100);
BEGIN
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (
begin_snap =>
<SNAPSHOT_ID_1> ,
end_snap =>
<SNAPSHOT_ID_2> ,
sql_id => ‘
<SQL_ID>‘,
scope => DBMS_SQLTUNE.scope_comprehensive,
time_limit => 60,
task_name => ‘my_sql_tuning_task’,
description => ‘My SQL Tuning task.’);
DBMS_OUTPUT.put_line(‘l_sql_tune_task_id: ‘ || l_sql_tune_task_id);
END;
/

Laat deze uitvoeren:
EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK( task_name => ‘my_sql_tuning_task’ );

Controleer de status van de task:
SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = ‘my_sql_tuning_task’;

Toon het rapport gemaakt door de tuning task:
SET LONG 10000
SET LONGCHUNKSIZE 1000
SET LINESIZE 400
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK( ‘my_sql_tuning_task’) FROM DUAL;

Verwijder de tuning task:
EXEC DBMS_SQLTUNE.DROP_TUNING_TASK( task_name => ‘my_sql_tuning_task’ );



Identified by values

Oracle Posted on Sat, January 26, 2013 11:12:51

Oracle heeft in database versie tot en met 10g een mechanisme om een gebruiker hetzelfde wachtwoord te geven, zonder dat je het wachtwoord weet.
Dit is het bekende

Alter user <username> identified by values ‘<password>’;

Password is een hash, die verkregen kan worden door middel van:

select password from dba_users where username='<username>’;

In Oracle 11g is dit mechanisme enigszins veranderd. Dit valt op doordat het password veld in dba_users nu leeg is. Dit veld is nog wel te query-en uit de view user$.
Tevens is er een nieuw veld bijgekomen, namelijk: password_versions.
Dit geeft aan of een wachtwoord een versie 10g of 11g is. Het grote verschil zit in de hash lengte en case-sensitive zijn van het wachtwoord. In 11g kan een wachtwoord nu case-sensitive zijn, hetgeen ook uit gezet kan worden door middel van:
alter system set sec_case_sensitive_logon=false;

De “oude” manier van alter-user-identified-by-values werkt nog steeds, met password veld uit de user$ view, maar dan veranderd het wachtwoord naar versie 10g en daardoor is het wachtwoord niet langer case-sensitive. Aanloggende gebruikers zullen hier geen last van ondervinden, maar het kan netter.
Dit is mijn geprefereerde methode:

set long 1000
select dbms_metadata.get_ddl(‘USER’,'<username>’) from dual;

Het resultaat is een create user statement met daarin de indentified-by-values optie, die rekening houdt met de wachtwoord versie.
Dit statement kan dan gebruikt worden voor een alter user statement.