In order to create a named credential, you need to know:
- Target name (unless you create a global credential)
- Target type
- Credential type associated with the target type
Now we start to create a named credential for cluster database ( RACTEST ) user ( JAMES).
1) To get TARGET_TYPE from TARGET_NAME. Normally we know a couple of target_type from daily emcli practice.
$ emcli get_targets -targets="RACTEST:%"
Status ID Status Target Type Target Name
1 Up rac_database RACTETS
2) To get the credential types (and their attributes) associated with “rac_database”.
$ emcli show_credential_type_info -target_type=rac_database
Target Type Cred Type Name Cred Type Column Name Key Column
rac_database DBCreds DBPassword No
DBRole No
DBUserName Yes
DBHostCreds HostPassword No
HostUserName Yes
DBKerberosCreds DBKerberosPassword No
DBKerberosUserName Yes
DBPkiCreds DBPkiUserWallet Yes
DBPkiUserWalletPassword No
DBPkiUserWalletType No
HostSSHCreds SSH_PUB_KEY No
SSH_PVT_KEY No
USERNAME Yes
We can see target type rac_database has four credential types. we will use credential type DBCreds in the following steps.
3) Create named credential for JAMES user of the RAC database.
$emcli create_named_credential -auth_target_type=rac_database \
-cred_scope=Instance -target_type=rac_database \
-target_name=RACTEST -cred_type=DBCreds -cred_name=NC_RACTEST_JAMES \
-attributes="DBUserName:JAMES;DBPassword:yourpasswd" -test
Credential NC_RACTEST_JAMES created.
Here “-test” to test the credential before saving.
If you want to create a global named credential, just remove “cred_scope, target_type, target_name” parameters.
$emcli create_named_credential -auth_target_type=rac_database \
-cred_type=DBCreds -cred_name=NC_G_RACTEST_JAMES \
-attributes="DBUserName:JAMES;DBPassword:yourpasswd"
Credential NC_G_RACTEST_JAMES created.
4) Test a named credential.
a) Instance named credential.
$ emcli test_named_credential -cred_names=NC_RACTEST_JAMES
Credentials "NC_RACTEST_JAMES:SYSMAN" tested successfully
b) Global named credential. target_name and target_type are required for testing global named credential.
$ emcli test_named_credential -cred_names=NC_G_RACTEST_JAMES
-target_name=RACTEST -target_type=rac_database
Credentials "NC_G_RACTEST_JAMES:SYSMAN" tested successfully
c) Global named credential can be used for both rac cluster database or its instances, while instance credential can only work for the attached target.
$ emcli test_named_credential -cred_names=NC_G_RACTEST_JAMES \
-target_name=RACTEST_RACTEST1 -target_type=oracle_database
Credentials "NC_G_RACTEST_JAMES:SYSMAN" tested successfully
$ emcli test_named_credential -cred_names=NC_RACTEST_JAMES \
-target_name=RACTEST_RACTEST1 -target_type=oracle_database
Error: target_name and target_type options should be provided
only for Global credentials.
5) Modify named credentials. Here we assume user JAMES password has been changed, so the named credentials have to be modified accordingly.
— Global Named Credential.
$ emcli modify_named_credential -cred_name=NC_G_RACTEST_JAMES \
-attributes="DBUserName:JAMES;DBPassword:NewPasswd"
Credential updated.
$ emcli test_named_credential -cred_names=NC_G_RACTEST_JAMES
-target_name=RACTEST -target_type=rac_database
Credentials "NC_G_RACTEST_JAMES:SYSMAN" tested successfully
— Instance Named Credential
$ emcli modify_named_credential -cred_name=NC_RACTEST_JAMES
-attributes="DBUserName:JAMES;DBPassword:NewPasswd"
Credential updated.
$ emcli test_named_credential -cred_names=NC_RACTEST_JAMES
Credentials "NC_RACTEST_JAMES:SYSMAN" tested successfully
6) List named credentials.
$emcli list_named_credentials
Credential Name Credential Owner Authenticating target type. Cred Type Name Target Name Target Username
NC_G_RACTEST_JAMES SYSMAN oracle_database DBCreds JAMES
NC_RACTEST_JAMES SYSMAN oracle_database DBCreds RACTEST JAMES
...
..
.
7) Displays named credential details.
$ emcli get_named_credential -cred_name=NC_G_RACTEST_JAMES
Credential Name:NC_G_RACTEST_JAMES
Credential Owner:SYSMAN
Credential Type:DBCreds
Credential Target Type:oracle_database
Credential Username:JAMES
Credential Scope:global
Credential Guid:996809C30D3F08A6E0530BAB050AEA55
Credential Stripe:TARGETS
Credential Columns:
DBPassword=******
DBRole=normal
DBUserName=JAMES
$ emcli get_named_credential -cred_name=NC_RACTEST_JAMES
Credential Name:NC_RACTEST_JAMES
Credential Owner:SYSMAN
Credential Type:DBCreds
Credential Target Type:oracle_database
Credential Username:JAMES
Credential Scope:instance
Credential Guid:9967E027F13E4CC2E0530BAB050A9877
Credential Stripe:TARGETS
Instance Target Name:RACTEST
Instance Target Type:rac_database
Credential Columns:
DBPassword=******
DBRole=normal
DBUserName=JAMES
8)Deletes an existing named credential.
$ emcli delete_named_credential -cred_name=NC_G_RACTEST_JAMES
Credential deleted.
$ emcli delete_named_credential -cred_name=NC_RACTEST_JAMES \
-cred_owner=sysman
Credential deleted.
9)Help.
$emcli help create_named_credential
$ emcli help get_named_credential