Which has the higher priority in your organization: Deploying a new database or securing the ones you already have?
Looking for a website, and resources, dedicated solely to securing Oracle databases? Check out DBSecWorx.
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;
/