查所有密码策略
bash
SELECT profile, resource_name, limit
FROM dba_profiles
WHERE resource_type = 'PASSWORD'
ORDER BY profile, resource_name;
SELECT username, profile, account_status, profile
FROM dba_users
ORDER BY profile, username;
SELECT text
FROM dba_source
WHERE name = 'ORA12C_VERIFY_FUNCTION'
ORDER BY line;
SELECT owner, object_name, object_type, status
FROM dba_objects
WHERE object_name LIKE '%VERIFY%';
set linesize 400
col username for a30
col account_status for a20
col profile for a20
col resource_name for a30
SELECT u.username,
u.account_status,
u.profile,
p.resource_name,
p.limit
FROM dba_users u
JOIN dba_profiles p
ON u.profile = p.profile
WHERE p.resource_type = 'PASSWORD'
ORDER BY u.username, p.resource_name;
查看密码复杂度函数源码
bash
SET PAGESIZE 500
SET LINESIZE 200
COL TEXT FORMAT A180
SELECT name, line, text
FROM dba_source
WHERE owner = 'SYS'
AND type = 'FUNCTION'
AND name IN ('ORA12C_VERIFY_FUNCTION', 'ORA12C_STIG_VERIFY_FUNCTION')
ORDER BY name, line;
如果只想看 STIG 这个策略:
SELECT line, text
FROM dba_source
WHERE owner = 'SYS'
AND type = 'FUNCTION'
AND name = 'ORA12C_STIG_VERIFY_FUNCTION'
ORDER BY line;
只看默认策略:
SELECT line, text
FROM dba_source
WHERE owner = 'SYS'
AND type = 'FUNCTION'
AND name = 'ORA12C_VERIFY_FUNCTION'
ORDER BY line;
2. 如果查不到源码,先确认函数在哪个用户下
SELECT owner, object_name, object_type, status
FROM dba_objects
WHERE object_name IN ('ORA12C_VERIFY_FUNCTION', 'ORA12C_STIG_VERIFY_FUNCTION');
查看函数 DDL
SET LONG 100000
SET PAGESIZE 500
SET LINESIZE 200
SELECT dbms_metadata.get_ddl('FUNCTION', 'ORA12C_VERIFY_FUNCTION', 'SYS')
FROM dual;
SELECT dbms_metadata.get_ddl('FUNCTION', 'ORA12C_STIG_VERIFY_FUNCTION', 'SYS')
FROM dual;