Sollen diverse NCs erstellt werden (z.b bei einer Migration auf ein neues OMS) ist das einzelne Erstellen von NCs ein mühsamer Prozess.Dazu gibt es die Möglichkeit via emcli NCs zu erstellen. In Kombination mit einem SQL-Statement können so sehr viele NCs auf einmal erstellt werden.
Das Script kann beliebig oft ausgeführt werden, es werden nur solche NCs vorgeschlagen, welche noch nicht vorhanden sind.
SQL> select 'emcli create_named_credential -auth_target_type=oracle_database -target_type=oracle_database -cred_scope=Instance -target_name=' || TARGET_NAME || ' -cred_type=DBCreds -cred_name=NC_DB_' || TARGET_NAME ||'_SYS -attributes="DBUserName:SYS;DBPassword:xxxPASSWORDxxx;DBRole:sysdba" ' as Command from EM_TARGETS where TARGET_TYPE='oracle_database' AND MANAGE_STATUS=2 and 'NC_DB_' || TARGET_NAME || '_SYS' not in ( SELECT cred_name FROM em_nc_creds WHERE cred_owner '');
$ emcli login -username=sysman # generierte EM-CLI-Kommandos von oben ausführen
Grant Access auf Named Credentials
Wenn z.B. die DBA-Gruppe auf viele NCs Zugriff haben soll, ist das Manuelle berechtigen mühsam. Mit dem folgenden Statement kann das Granting via emcli ausgeführt werden.
SQL> SELECT 'emcli grant_privs -name="ROLE_P_DBA" -privilege="GET_CREDENTIAL;CRED_NAME=' || cred_name || ':CRED_OWNER=' || cred_owner || '"' cmd FROM em_nc_creds WHERE cred_owner='SYSMAN';
$> emcli login -username=sysman # generierte EM-CLI-Kommandos von oben ausführen