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
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;
/