Owned by SYS with EXECUTE granted to PUBLIC which seems like a gross violation of "best practice" for security as
certainly no-one with only CREATE SESSION privilege needs to execute this package. This grant should be revoked and only granted as required.
dbms_credential.create_credential(
credential_name IN VARCHAR2,
username IN VARCHAR2,
password IN VARCHAR2,
database_role IN VARCHAR2 DEFAULT NULL,
windows_domain IN VARCHAR2 DEFAULT NULL,
comments IN VARCHAR2 DEFAULT NULL,
enabled IN BOOLEAN DEFAULT TRUE,
key IN VARCHAR2 DEFAULT NULL);
dbms_credential.enable_credential(credential_name IN VARCHAR2);
exec dbms_credential.enable_credential('UWCred');
PL/SQL procedure successfully completed.
SELECT *
FROM scheduler$_credential;
-- note flag = 4
Code from {ORACLE_HOME}/rdbms/admin/a11020000.sql reformatted for readability
DECLARE
CURSOR creds IS
SELECT owner, credential_name
FROM dba_scheduler_credentials
WHERE username IS NULL;
BEGIN
FOR cred_info IN creds
LOOP
dbms_credential.enable_credential('"'||cred_info.owner||'"."'|| cred_info.credential_name||'"');
END LOOP;
END;
/
dbms_credential.update_credential(
credential_name IN VARCHAR2,
attribute IN VARCHAR2, -- USERNAME, PASSWORD, WINDOWS_DOMAIN, or COMMENTS
value IN VARCHAR2);
col owner format a10
col credential_name format a20
col username format a10
col windows_domain format a15
col comments format a25
col password format a30
SELECT *
FROM dba_credentials;
exec dbms_credential.enable_credential('UWCred');
PL/SQL procedure successfully completed.
SELECT *
FROM dba_credentials;
SELECT obj#, username, password
FROM sys.scheduler$_credential;