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
Undocumented but part of Health Monitoring and related to DBMS_WLM.
Important Note: For the first demo for each procedure below, all parameter values are random strings and do not reference any real object.
The second demo, if one is present, is copied from $ORACLE_HOME/rdbms/admin/prvtsqtk.plb and provides an insight into how Oracle uses this package's functionality.
Oracle's code has been properly formatted so that the functionality can be understood in the context of Library demos.
AUTHID
DEFINER
Dependencies
SQL_TK_CHK_ID
SQL_TK_REF_CHK$
SQL_TK_TAB_DESC$
SQL_TK_COLL_CHK$
SQL_TK_ROW_CHK$
Documented
No
First Available
21c
Security Model
Owned by SYS with EXECUTE granted to the DBA role.
hm_sqltk_internal.ref_check(
table_name IN VARCHAR2,
foreign_key IN VARCHAR2,
primary_key_table IN VARCHAR2,
primary_key IN VARCHAR2,
fk_filter IN VARCHAR2,
chk_desc IN VARCHAR2);
BEGIN
hm_sqltk_internal.ref_check('tab$','file#','file$','relfile#', 'file# != 0 and file# != 1024', 'foreign key relfile# not found in file$');
END;
/
There is no constraint type in Oracle that could possibly be validated as "QQ" which appears to confirm our suspicion that execute has been granted to DBA but that either the package does nothing or contains no exception handling.
hm_sqltk_internal.row_check(
table_name IN VARCHAR2,
col_list IN VARCHAR2,
con_type IN VARCHAR2,
chk_desc IN VARCHAR2);
hm_sqltk_internal.tab_desc(
table_name IN VARCHAR2,
tab_query IN VARCHAR2);
exec hm_sqltk_internal.tab_desc('ZZYZX', 'SELECT COUNT(*) FROM ZZYZX');
PL/SQL procedure successfully completed.
BEGIN
hm_sqltk_internal.tab_desc('tab$', 'SELECT ''Object ''||u.name||''.''||o.name||'' is referenced'' FROM obj$ o, user$ u, tab$ t WHERE t.rowid = chartorowid(:1) AND t.obj# = o.obj# AND o.owner# = u.user#');
END;
/