ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling
complimentary technical Workshops on Database Security for the first 30
Oracle Database customers located anywhere in North America, EMEA, LATAM, or
APAC that send an email to
asra_us@oracle.com. Request a Workshop for
your organization today.
Purpose
Contains functions that retrieve factor identities. After Oracle Database Vault installation, the install process locks the DVF account to enhance security.
When creating a new factor, Database Vault creates a new retrieval function for the factor owned by the DVF schema.
The demo, at right, is from $ORACLE_HOME/rdbms/admin/catmact.sql reformatted for readability since no one has taught developers at Oracle how to format their code.
dbms_macsec_function.create_factor_function(p_factor IN VARCHAR2);
BEGIN
FOR c99 IN (SELECT id# , name, get_expr FROM dvsys.factor$) LOOP
l_exp := c99.get_expr;
l_name := c99.name;
BEGIN
-- if invalid factor name, then no need to create the factor function
IF (LENGTH(l_name) > 126) THEN
dvsys.dbms_macutl.raise_error(47951,'factor_name');
END IF;
sys.dbms_utility.canonicalize(
sys.dbms_assert.simple_sql_name(
dvsys.dbms_macutl.to_oracle_identifier(l_name)), l_canon_name, 126);
IF (LENGTH(l_canon_name) > 126) THEN
dvsys.dbms_macutl.raise_error(47951, 'factor_name');
END IF;
dvf.dbms_macsec_function.create_factor_function(l_name);
EXCEPTION
WHEN OTHERS THEN
sys.dbms_output.put_line('sddvffnc: factor='||l_name||',error='||sqlerrm);
END;
END LOOP;
END;
/