107 lines
3.1 KiB
Plaintext
107 lines
3.1 KiB
Plaintext
-- http://www.br8dba.com/store-db-credentials-in-oracle-wallet/
|
|
-- https://franckpachot.medium.com/19c-ezconnect-and-wallet-easy-connect-and-external-password-file-8e326bb8c9f5
|
|
|
|
# create 2 users in a PDB
|
|
alter session set container=NIHILUS;
|
|
show con_name
|
|
show pdbs
|
|
|
|
grant create session to WOMBAT identified by "CuteAnimal99#";
|
|
grant create session to OTTER identified by "CuteAnimal@88";
|
|
|
|
|
|
# create directory for tnsnames.ora
|
|
export TNS_ADMIN=/home/oracle/tmp/tns
|
|
mkdir -p ${TNS_ADMIN}
|
|
|
|
# add TNS alias in $TNS_ADMIN/tnsnames.ora
|
|
WOMBAT_NIHILUS=(DESCRIPTION=
|
|
(CONNECT_DATA=
|
|
(SERVICE_NAME=NIHILUS)
|
|
)
|
|
(ADDRESS=
|
|
(PROTOCOL=tcp)
|
|
(HOST=bakura)
|
|
(PORT=1521)
|
|
)
|
|
)
|
|
|
|
OTTER_NIHILUS=(DESCRIPTION=
|
|
(CONNECT_DATA=
|
|
(SERVICE_NAME=NIHILUS)
|
|
)
|
|
(ADDRESS=
|
|
(PROTOCOL=tcp)
|
|
(HOST=bakura)
|
|
(PORT=1521)
|
|
)
|
|
)
|
|
|
|
|
|
# test connections using TNS alias
|
|
sqlplus /nolog
|
|
connect WOMBAT/"CuteAnimal99#"@WOMBAT_NIHILUS
|
|
connect OTTER/"CuteAnimal@88"@OTTER_NIHILUS
|
|
|
|
|
|
|
|
# add following lines in $TNS_ADMIN/sqlnet.ora
|
|
WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/home/oracle/tmp/wdir)))
|
|
SQLNET.WALLET_OVERRIDE=TRUE
|
|
|
|
|
|
# create wallet
|
|
export MY_WALLET_DIR=/home/oracle/tmp/wdir
|
|
mkdir -p ${MY_WALLET_DIR}
|
|
orapki wallet create -wallet ${MY_WALLET_DIR} -auto_login
|
|
|
|
# files generated in ${MY_WALLET_DIR}
|
|
# check for 600 permissions on all theses files, otherwise the connection using the wallet will not work
|
|
ewallet.p12.lck
|
|
ewallet.p12
|
|
cwallet.sso.lck
|
|
cwallet.sso
|
|
|
|
|
|
# add credentials
|
|
mkstore -wrl ${MY_WALLET_DIR} -createCredential WOMBAT_NIHILUS WOMBAT "CuteAnimal99#"
|
|
mkstore -wrl ${MY_WALLET_DIR} -createCredential OTTER_NIHILUS OTTER "CuteAnimal@88"
|
|
|
|
# list wallet credentials
|
|
mkstore -wrl ${MY_WALLET_DIR} -listCredential
|
|
|
|
# update or delete entery
|
|
mkstore -wrl ${MY_WALLET_DIR} -modifyCredential WOMBAT_NIHILUS WOMBAT "CuteAnimal99#"
|
|
mkstore -wrl ${MY_WALLET_DIR} -deleteCredential OTTER_NIHILUS
|
|
|
|
# test connection using wallet
|
|
sqlplus /@WOMBAT_NIHILUS
|
|
show user
|
|
|
|
sqlplus /@OTTER_NIHILUS
|
|
show user
|
|
|
|
# NOTES
|
|
# if we want to store in the same wallet passwords of multiple users, we should use multiple TNS alias because the TNS alias is an unique key in the wallet
|
|
# if the wallet has bee created with -auto_login option, the wallet password is required to add/modify/delete/list wallet credentials
|
|
# but it is not required to establish connections
|
|
|
|
|
|
# using ezConnect
|
|
#################
|
|
|
|
# basicly, when using ezConnect we have the same "TNS alias", ex: //bakura:1521/NIHILUS
|
|
# how to add multiples credentials? using dummy ezConnect parameter introduced in 19c:
|
|
# https://franckpachot.medium.com/19c-easy-connect-e0c3b77968d7
|
|
|
|
# in our case we will add a dummy parameter "ConnectAs" in order to crerate distinct ezStrings depending by username
|
|
mkstore -wrl ${MY_WALLET_DIR} -createCredential //bakura:1521/NIHILUS?ConnectAs=WOMBAT WOMBAT "CuteAnimal99#"
|
|
mkstore -wrl ${MY_WALLET_DIR} -createCredential //bakura:1521/NIHILUS?ConnectAs=OTTER OTTER "CuteAnimal@88"
|
|
|
|
sqlplus /@//bakura:1521/NIHILUS?ConnectAs=WOMBAT
|
|
show user
|
|
|
|
sqlplus /@//bakura:1521/NIHILUS?ConnectAs=OTTER
|
|
show user
|
|
|