Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限
OEM提示:Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限
程序包: DBMS_RANDOM
UTL_HTTP
UTL_SMTP
UTL_TCP
[oracle@db ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Fri Jun 12 14:20:44 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> revoke execute on utl_file from public;
Revoke succeeded.
SQL> revoke execute on dbms_random from public;
Revoke succeeded.
SQL> revoke execute on utl_http from public;
Revoke succeeded.
SQL> revoke execute on utl_smtp from public;
Revoke succeeded.
SQL> revoke execute on utl_tcp from public;
Revoke succeeded.
SQL>
========================================
收回后会出现许多无效的包,下面的你可能会用到。
SQL>grant execute on utl_file to public;
SQL>grant execute on DBMS_RANDOM to public;
SQL>grant execute on UTL_HTTP to public;
SQL>grant execute on UTL_SMTP to public;
SQL>grant execute on UTL_TCP to public;
========================================
查看Public所拥有权限:
SQL> SELECT table_name FROM dba_tab_privs WHERE grantee='PUBLIC' AND privilege='EXECUTE' AND table_name LIKE 'UTL%';
========================================
Errors in file /u01/oracle/admin/gstsms/bdump/gstsms_j002_21665.trc:
ORA-12012: error on auto execute of job 90541
ORA-04063: ORA-04063: package body "ORACLE_OCM.MGMT_DB_LL_METRICS" has errors
ORA-06508: PL/SQL: could not find program unit being called: "ORACLE_OCM.MGMT_DB_LL_METRICS"
ORA-06512: at line 1
has errors
To give Execute Privilege to the UTL_FILE, run the following SQL statement:
SQL>GRANT EXECUTE ON SYS.UTL_FILE TO ORACLE_OCM;
参考地址:http://download.oracle.com/docs/html/B32294_08/troubleshooting.htm
========================================
(EM) Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限
Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限 (网找的解决方法,但是EM并没有取消警告)
程序包 UTL_FILE
程序包 DBMS_RANDOM
UTL_HTTP
UTL_SMTP
UTL_TCP
解决:
revoke execute on utl_file from public;
revoke execute on DBMS_RANDOM from public;
revoke execute on UTL_HTTP from public;
revoke execute on UTL_SMTP from public;
revoke execute on UTL_TCP from public;