Your SlideShare is downloading. ×
0
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
1. Oralce 11g 常用功能与内置包 (90 页)+
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

1. Oralce 11g 常用功能与内置包 (90 页)+

850

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
850
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Oracle 10g/11g Database常用功能与内置包 赵元杰北京群环域科技有限公司 2012.2
  • 2. 内容提要♠ 版本功能与内置包♠ 开发者需了解的内置包♠ DBA需了解的内置包♠ DSA需了解的内置包♠ 参考
  • 3. Oracle 功能与内置包♠ Oracle功能与内置包关系: ♠ 许多开发者不喜欢PL/SQL,也喜欢内置包 ♠ 不了解新功能是由内置包写成,图形界面也要 调用内置包来完成处理♠ 许多新功能提供完善的API ♠ API 最简单方法就是 PL/SQL ♠ API 可采用JAVA 接口 ♠ API也可使用C/C++ 接口 3/75
  • 4. Oracle 功能关键点♠ Oracle 功能的内幕 ♠ 对应的数据字典 ♠ 内设置包 ♠ 相应的参数♠ Oracle 功能的表面 ♠ 图形界面有相应栏目 ♠ 命令如何使用 ♠ 资料有功能介绍 ♠ API方法
  • 5. Oracle 系统新功能与内置包♠ Oracle 系统内置包与参考资料 ♠ Oracle 8i Supplied PL/SQL Packages Reference 共1036页 ♠ Oracle 9i Supplied PL/SQL Packages and Types Reference 共2008页 ♠ Oracle 10g Database PL/SQL Packages and Types Reference 共4164页 ♠ Oracle11g R1 Database PL/SQL Packages and Types Reference 共5100页♠ Oracle 功能的表面 ♠ 图形界面有相应栏目 ♠ 命令如何使用 ♠ 资料有功能介绍 ♠ API方法
  • 6. Oracle 系统新功能与内置包 ♠ Oracle 新功能变化相关内容 ♠ 许多新功能=包+参数+数据字典 功能 内置包 参数 相关视图/数据字典Resumable DBMS_RESUMABLE RESUMABLE_TIMEO DBA_RESUMABLET UT DBA_OUTSTANDING_ALERTS(9i开始)FLASHBACK DBMS_FLASHBACK RECYCLEBIN v$flashback_database_log DB_FLASHBACK_RE V$FLASHBACK_DATABASE_L(10g 开始) TENTION_TARGET OGFILE v$flashback_database_stat DBA_RECYCLEBINAutomatic DBMS_SQLDIAG DIAGNOSTIC_DEST V$ADR_BASE V$ADR_HOMEDiagnostic V$Diag_infoRepository(11g 开始) 6/30
  • 7. Oracle 9i 新增加的包Oracle9i 新支持包列表DBMS_AQELM DBMS_ENCODEDBMS_FGA DBMS_FLASHBACKDBMS_LDAP DBMS_LIBCACHEDBMS_LOGMNR_CDC_PUBLISH DBMS_LOGMNR_CDC_SUBSCRIBEDBMS_METADATA DBMS_ODCIDBMS_OUTLN_EDIT DBMS_REDEFINITIONDBMS_TRANSFORM DBMS_WMDBMS_XMLGEN DBMS_XMLQUERYDMBS_XMLSAVE UTL_ENCODEUTL_URL 7/75
  • 8. Oracle 9i 新增加的包Oracle9i R2新支持包列表DBMS_APPLY_ADM DBMS_CAPTURE_ADMDBMS_LOGSTDBY DBMS_MGWADMDBMS_MGWMSG DBMS_PROPAGATION_ADMDBMS_RULE DBMS_RULE_ADMDBMS_STORAGE_MAP DBMS_STREAMSDBMS_STREAMS_ADM DBMS_XDBDBMS_XDBT DBMS_XDB_VERSIONDBMS_XMLDOM DBMS_XMLPARSERDBMS_XPLAN DBMS_XSLPROCESSOR 8/75
  • 9. Oracle 10g 新的内置包Oracle 10g R2 新的内置包 DBMS_AQELM DBMS_AQIN DBMS_CHANGE_NOTIFICATION DBMS_DB_VERSION DBMS_EPG DBMS_ERRLOG DBMS_EXPFIL 9/75
  • 10. Oracle 10g 新的内置包Oracle 10g R2 新的内置包 DBMS_FILE_GROUP DBMS_PREDICTIVE_ANALYTICS DBMS_PREPROCESSOR DBMS_RLMGR DBMS_TDB SDO_NET_MEM UTL_NLA 10/75
  • 11. Oracle 10g 新修订的内置包Oracle 10g R2 新修订的内置包DBMS_ADVISOR DBMS_DDLDBMS_APPLY_ADM DBMS_DESCRIBEDBMS_AQ DBMS_FGADBMS_AQADM DBMS_FILE_TRANSFERDBMS_CAPTURE_ADM DBMS_LOBDBMS_CDC_PUBLISH DBMS_LOGMNRDBMS_CRYPTO DBMS_LOGMNR_DDBMS_DATA_MINING DBMS_LOGSTDBYDBMS_DATA_MINING_TRANSFORM DBMS_METADATADBMS_DATAPUMP DBMS_MGWADM 11/75
  • 12. Oracle 10g 新修订的内置包Oracle 10g R2 新修订的内置包DBMS_MGWMSG DBMS_SERVER_ALERTDBMS_MONITOR DBMS_SERVICEDBMS_OUTLN_EDIT DBMS_SESSIONDBMS_OUTPUT DBMS_SPACEDBMS_PROPAGATION_ADM DBMS_SPACE_ADMINDBMS_REDEFINITION DBMS_SQLTUNEDBMS_REPAIR DBMS_STATSDBMS_RESOURCE_MANAGER DBMS_STREAMSDBMS_RULE_ADM DBMS_STREAMS_ADMDBMS_SCHEDULER DBMS_STREAMS_TABLESPACE_ADM 12/75
  • 13. Oracle 10g 新修订的内置包Oracle 10g R2 新修订的内置包DBMS_TTS DBMS_XPLANDBMS_UTILITY DBMS_XSLPROCESSORDBMS_WORKLOAD_REPOSITORY SDO_CSDBMS_XDB SDO_TOPO_MAPDBMS_XDBZ SDO_UTILDBMS_XMLDOM UTL_I18NDBMS_XMLSCHEMA 13/75
  • 14. Oracle 11g 新的内置包Oracle 11g R2 新支持的内置包APEX_CUSTOM_AUTH DBMS_COMPARISONAPEX_APPLICATION DBMS_COMPRESSIONAPEX_ITEM DBMS_CONNECTION_POOLAPEX_UTIL DBMS_CSX_ADMINDBMS_ADDM DBMS_CUBEDBMS_DBFS_HS DBMS_CUBE_ADVISEDBMS_ASSERT DBMS_DBFS_CONTENTDBMS_AUTO_TASK_ADMIN DBMS_DBFS_CONTENT_SPIDBMS_AUTO_TASK_IMMEDIATE DBMS_DBFS_HSDBMS_AUDIT_MGMT DBMS_DBFS_SFSDBMS_AW_STATS DBMS_DG 14/75
  • 15. Oracle 11g 新的内置包Oracle 11g R2 新支持的内置包DBMS_DST DBMS_SPMDBMS_HM DBMS_SQLDIAGDBMS_HPROF DBMS_STREAMS_ADVISOR_ADMDBMS_HS_PARALLEL DBMS_STREAMS_HANDLER_ADMDBMS_METADATA_DIFF DBMS_WORKLOAD_CAPTUREDBMS_MGD_ID_UTL DBMS_WORKLOAD_REPLAYDBMS_NETWORK_ACL_ADMIN DBMS_XADBMS_NETWORK_ACL_UTILITY DBMS_XDB_ADMINDBMS_PARALLEL_EXECUTE DBMS_XDBRESOURCEDBMS_RESCONFIG DBMS_XEVENTDBMS_RESULT_CACHE DBMS_XMLINDEX 15/75
  • 16. Oracle 11g 新的内置包Oracle 11g R2 新支持的内置包DBMS_XMLTRANSLATIONS SDO_WFS_PROCESSDBMS_XPLAN SEM_APISSDO_CSW_PROCESS SEM_PERFSDO_GEOR_ADMIN SEM_RDFCTXSDO_OLS SEM_RDFSASDO_PC_PKG UTL_MATCHSDO_TIN_PKG UTL_SPADVSDO_WFS_LOCK 16/75
  • 17. Oracle 11g 新修订的内置包Oracle 11g R2 新修订的内置包DBMS_ADVISOR DBMS_DATAPUMPDBMS_APPLY_ADM DBMS_EXPFILDBMS_AQ DBMS_FLASHBACKDBMS_AQADM DBMS_HS_PASSTHROUGHDBMS_CAPTURE_ADM DBMS_LOBDBMS_CDC_PUBLISH DBMS_LOGSTDBYDBMS_CDC_SUBSCRIBE DBMS_METADATADBMS_CQ_NOTIFICATION DBMS_MGWADMDBMS_DATA_MINING DBMS_MVIEWDBMS_DATA_MINING_TRANSFOR DBMS_OUTLN M DBMS_PARALLEL_EXECUTE 17/75
  • 18. Oracle 11g 新修订的内置包Oracle 11g R2 新修订的内置包DBMS_PREDICTIVE_ANALYTICS DBMS_SQLPADBMS_PROPAGATION_ADM DBMS_SQLTUNEDBMS_RESOURCE_MANAGER DBMS_STATSDBMS_RLMGR DBMS_STREAMSDBMS_RULE_ADM DBMS_STREAMS_ADMDBMS_SCHEDULER DBMS_STREAMS_TABLESPACE_ADDBMS_SERVER_ALERT MDBMS_SESSION DBMS_TRACEDBMS_SPACE DBMS_UTILITYDBMS_SQL DBMS_WORKLOAD_REPOSITORY DBMS_XDB 18/75
  • 19. Oracle 11g 新修订的内置包Oracle 11g R2 新修订的内置包 DBMS_XMLINDEX DBMS_XMLSCHEMA DBMS_XPLAN ORD_DICOM UTL_HTTP UTL_IDENT UTL_INADDR UTL_RECOMP UTL_SMTP UTL_SPADV UTL_TCP 19/75
  • 20. 10g新功能与内置包举例♠ Oracle 10g新功能 ♠ 闪回新功能-DBMS_FLASHBACK ♠ 自动存储管理-DBMS_ASM ♠ 数据泵-DBMS_PUMP ♠ UTL_COMPRESS ♠ UTL_MAIL 20/75
  • 21. 11g新功能与内置包举例♠ Oracle 11g 新功能 ♠ 两个表比较-DBMS_COMPARISON ♠ 连接池-DBMS_CONNECTION_POOL ♠ 健康管理-DBMS_HM 21/75
  • 22. 11g内置包-DBMS_COMPARISON♠ DBMS_COMPARISON ♠ 比较两个对象的差异 ♠ $ORACLE_HOME/rdbms/admin/dbmscmp.sql♠ DBMS_COMPARISON相关的数据字典 ♠ DBA_COMPARISON ♠ DBA_COMPARISON_COLUMNS ♠ DBA_COMPARISON_SCAN ♠ DBA_COMPARISON_SCAN_SUMMARY ♠ DBA_COMPARISON_SCAN_VALUES ♠ DBA_COMPARISON_ROW_DIF 22/75
  • 23. 11g内置包-DBMS_SQLPA♠ DBMS_SQLPA ♠ SQLPA=SQL Performance Analyzer ♠ 11g版本了解 SQL 执行计划以及 SQL 性能 ♠ 通过SPA可根据各种更改类型(如初始化参数更改、 优化程序统计刷新和数据库升级)播放特定的 SQL 或整个的 SQL 负载,然后生成比较报告,帮助您评 估它们的影响♥ SPA 使用顺序: ♥ 1.捕获 SQL workload(工作量) ♥ 2.改变前执行工作量 ♥ 3.进行改变 ♥ 4.测试改变前执行工作量 ♥ 5.比较性能 23/75
  • 24. 11g内置包-DBMS_SPM♥ 11g SPM=SQL Plan Management: ♥ SPM就是SQL Plan Management,是11g 自我管理(或自动性)发展的新 功能 ♥ 通过SPM,Oracle自动去判断某个SQL的新的执行计划是否更加合 理(成本更低) ♥ 只有在新的执行计划比原来的执行计划更好的情况下,它才 会被使用,从而有效的保护了执行计划的稳定性,进而保证 了SQL语句的执行效率。♥ DBMS_SPM包 ♥ DBMS_SPM包来管理SQL Plan ♥ SPM是一个预防机制,它记录并评估SQL的执行计 划,将已知的高效的SQL执行计划建立为SQL Plan Baselines ♥ SQL Plan Baseline的功能是保持SQL的性能而不必关 注系统的改变 24/75
  • 25. 11g健康检查-DBMS_HM包♠ 11g 健康检查包-DBMS_HM: ♠ 可在SQL或API中使用 : SQL> select name from v$hm_check order by 1; NAME ---------------------------------------------------------------- All Control Files Check All Datafiles Check Archived Log Check Block IO Revalidation Check CF Member Check DB Structure Integrity Check Data Block Integrity Check Dictionary Integrity Check Failure Simulation Check HM Test Check IO Revalidation Check Log Group Check Log Group Member Check Logical Block Check Redo Integrity Check Redo Revalidation Check Single Datafile Check Transaction Integrity Check
  • 26. 11g健康检查-DBMS_HM包♠ 11g 健康检查包-DBMS_HM: ♠ 可在SQL或API中使用 : SQL> exec dbms_hm.run_check(DB Structure Integrity Check,’indy_2’); PL/SQL procedure successfully completed. SQL> select run_id,name,check_name from v$hm_run where name=’indy_2’; RUN_ID NAME CHECK_NAME ---------- -------------------------------- -------------------------------- 681 indy_2 DB Structure Integrity Check SQL> set long 1000000000 SQL> select dbms_hm.get_run_report(indy_2) from dual; DBMS_HM.GET_RUN_REPORT(INDY_2) -------------------------------------------------------------------------------- Basic Run Information Run Name : indy_2 Run Id : 761 Check Name : DB Structure Integrity Check Mode : MANUAL Status : COMPLETED Start Time : 2007-08-15 14:51:47.986255 -04:00 End Time : 2007-08-15 14:51:48.003219 -04:00 Error Encountered : 0 Source Incident Id : 0 Number of Incidents Created : 0
  • 27. 内容提要♠ 版本功能与内置包♠ 开发者需了解的内置包♠ DBA需了解的内置包♠ DSA需了解的内置包♠ 参考 27/75
  • 28. 开发者与内置包♠ 10g版本的内置包与用户:连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> select owner,count(*) from dba_objects 2 where object_type =PACKAGE group by owner 3* order by count(*) desc ;OWNER COUNT(*)------------------------------ ----------SYS 519CTXSYS 71SYSMAN 71MDSYS 47OLAPSYS 45 28/75
  • 29. 开发者与内置包♠ 11g版本的内置包与用户:SQL> set pagesize 99SQL> select owner,count(*) from dba_objects 2 where object_type =PACKAGE group by owner 3 order by count(*) desc ;OWNER COUNT(*)------------------------------ ----------SYS 591SYSMAN 187FLOWS_030000 174CTXSYS 70MDSYS 69OLAPSYS 45XDB 30ORDSYS 27WKSYS 22WMSYS 22 29/75
  • 30. 开发者与内置包♠ 专用的内置包在各个用户名下 ♠ 软件人员需大概了解主要内置包的名称: 用户 用途SYSMAN 管理Oracle数据库的用户FLOWS_030000 DBA用的在APEX version 3.0 环境CTXSYS Oracle Text用户MDSYS Oracle Spatial用户OLAPSYS OLAP元数据结构的用户XDB Oracle XML DB用户 30/75
  • 31. 开发者与内置包♠ 专用的内置包在各个用户名下 ♠ 软件人员需大概了解主要内置包的名称: 用户 用途ORDSYS Oracle interMedia管理用户WKSYS Oracle UltraSearch用户WMSYS Oracle Data Mining account用户EXFSYS 用于角色管理等的内部用户ORDPLUGINS Oracle interMedia userDBSNMP EM中管理带来的用户ORACLE_OCM Oracle Configuration Manager用户 31/75
  • 32. 开发者与内置包♠ Oracle 公司早就为你想好了: ♠ 不怕不知道;就怕想不到 ♠ 不了解内置包,你可做一些多余的工作♠ 如何了解内置包 ♠ 知道名称与功能即可 ♠ 使用看例子,看例子没能解决问题,深入研究 ♠ 从网上搜索可能更快,但你至少有一个内置包 的名称吧!! 32/75
  • 33. Oracle 11g内嵌包 ♠ 提供数据库基本支持;在 SYS 模式下连接到:Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsselect owner,count(*) from dba_objectswhere object_type =PACKAGE group by owner order by count(*) desc ;OWNER COUNT(*)------------------------------ ----------SYS 591SYSMAN 187FLOWS_030000 174CTXSYS 70MDSYS 69OLAPSYS 45XDB 30ORDSYS 27WKSYS 22WMSYS 22EXFSYS 18ORDPLUGINS 5DBSNMP 3ORACLE_OCM 3 33/75SYSTEM 1(DBMS_REPCAT_AUTH)
  • 34. Oracle 11g内嵌包♠ Oracle 功能与内置包 ♠ SYS是通用的内置包,其他用户是专用: 用户 功能SYS Oracle 系统常用的内置包SYSMAN 超级系统管理用户FLOWS_030000 Application Express 用户CTXSYS Oracle Text 产品的用户,用于全文检索MDSYS Oracle Spatial and Oracle interMediaOLAPSYS 联机分析用户(OLAP 元数据结构) 34/75
  • 35. Oracle 的内嵌(Built-In) 包♠ 多数schema的模式都有内置包,下面按用户列表 查询:SQL> show userUSER 为 "SYS"col object_name for a30col owner for a12select owner,object_name from dba_objects where object_type =PACKAGE order by owner, object_type;OWNER OBJECT_NAME------------ ------------------------…SYS STANDARDSYS DBMS_STANDARDSYS DBMS_REGISTRYSYS DBMS_REGISTRY_SERVERSYS XML_SCHEMA_NAME_PRESENTSYS UTL_RAWSYS DBMS_ADVISORSYS PLITBLM 35/75
  • 36. 开发有关内置包-DBMS_OUTPUT♠ DBMS_OUTPUT内置包: ♠ 用于输出变量结果 ♠ 可输出字符类型数据 ♠ 用于调试阶段的结果显示♠ 建议: ♠ PL/SQL调试中使用 ♠ 使用前要设置会话变量:set serveroutput on ♠ 在PL/SQL中用DBMS_OUTPUT.PUT_LINE实现结果输出 36/75
  • 37. 开发有关内置包-DBMS_METADATA♠ DBMS_METADATA内置包: ♠ 用于输出对象元数据 ♠ 可输出表、视图、存储过程等对象的元数据 ♠ 此外还用于返回XML等♠ 建议: ♠ 建议开发人员与管理人员都要熟悉它 ♠ 在系统的迁移时非常有用 ♠ 建议直接在SQL命令下使用 37/75
  • 38. 开发有关内置包-DBMS_JOB♠ DBMS_JOB内置包: ♠ 用于设置需要定时运行的作业 ♠ 许多需要定时运行的PL/SQL程序可使用 ♠ 使用这个包设置作业前先确保PL/SQL是可用♠ 建议: ♠ 有规律运行的PL/SQL应用可使用 ♠ 设置作业的关键是运行时间与再次运行时间 ♠ 如果需要设置较多作业时,建议进行时间规划,避免 过多作业在同时间运行 38/75
  • 39. 开发有关内置包-DBMS_SCHEDULER♠ DBMS_SCHEDULER 内置包: ♠ 10g新增加的功能,用于设置定时运行作业日程 ♠ 这个包是对DBMS_JOB的增强 ♠ 使用这个包设置作业日常,以进行全面的资源管理♠ 建议: ♠ 对于一般的作业,可直接使用DBMS_JOB完成 ♠ 设置多个作业,建议使用通过DBMS_SCHEDULER实现 ♠ 设置前,要整体时间规划,避免过多作业在同时间运 行 ♠ 管理员可从EM直接进行设置使用 39/75
  • 40. 开发有关内置包-DBMS_SQL♠ DBMS_SQL内置包: ♠ 用于PL/SQL动态编程 ♠ 在PL/SQL中使用DDL语句,必须使用动态 ♠ PL/SQL中不能确定的DML语句也要用动态♠ 建议: ♠ 不得已时不要再PL/SQL使用动态 ♠ 动态语句运行效率低下 ♠ 如果需要动态,则考虑立即的动态 40/75
  • 41. 开发有关内置包-DBMS_PIPE♠ DBMS_PIPE内置包: ♠ 用于进程间的通信 ♠ 一般在PL/SQL中使用,也可在C/C++或JAVA中使用 ♠ 管道包实现各进程间数据的双向传递和续传♠ 建议: ♠ 编写特殊应用或软件产品时使用 ♠ 可使用管道包实现工作流处理 ♠ 一些要求实时的数据传递可采用管道包来实现,而不 要采用触发器 41/75
  • 42. 开发有关内置包-DBMS_ALERT♠ DBMS_ALERT内置包: ♠ 与DBMS_PIPE包类似,用于信息的订阅-发布 ♠ 在多线程中使用♠ 建议: ♠ 编写特殊应用或软件产品时使用 ♠ 信息的订阅与发布情况下使用 ♠ 可在开发的软件产品中使用 42/75
  • 43. 开发有关内置包-UTL_MAIL♠ UTL_MAIL内置包: ♠ 10g新增加的包,用于邮件的发送 ♠ 9i之前使用UTL_SMTP包,UTL_SMTP 发送信息大小 < 3000 字 符 ♠ UTL_MAIL包实现与日常发送邮件一样功能♠ 建议: ♠ 要使用这个,以sysdba 安装 ♠ 了解环境的配置使用 ♠ 了解API方法 43/75
  • 44. 开发有关内置包- UTL_FILE♠ UTL_FILE内置包: ♠ 用于在OS路径下对文件的I/O操作 ♠ 类似在C语言的文件打开写入关闭等 ♠ 可用于产生需要的文件,比如写文本文件等♠ 建议: ♠ 这个包对OS路径需要读写权限,但不要轻易授予这样 的权限 ♠ 可对OS路径文件进程读写,在开发专门软件时使用, 比如在应用中运行用户将结果转换为PDF文件或将图像 存储为BMP文件等 44/75
  • 45. 开发有关内置包- DBMS_PROFLER♠ DBMS_PROFILER内置包: ♠ 用于对PL/SQL程序的优化分析 ♠ 这个跟踪PL/SQL程序中的语句的运行情况 ♠ 可用于PL/SQL性能的问题分析♠ 建议: ♠ 这个包平时不要使用,当问题较难确定时使用 ♠ 建议在会话中使用,注意及时结束使用 45/75
  • 46. 开发有关内置包- DBMS_HPROF♠ DBMS_HPROF内置包: ♠ 11g 新支持的内置包,用于替代DBMS_PROFILE包 ♠ 这个跟踪PL/SQL程序中的语句的运行情况 ♠ 可用于PL/SQL性能的问题分析♠ 建议: ♠ 11g版本可使用这个包,使用这个包需要安装,如connect HR/HR; @?/rdbms/admin/dbmshptab.sql ♠ 10g及之前的版本只能使用DBMS_PROFILE 46/75
  • 47. 开发有关内置包-DBMS_CONNECTION_POOL♠ DBMS_CONNECTION_POOL内置包: ♠ 11g 新支持的内置包 ♠ 用于设置数据库常驻连接池 ♠ 解决连接池的负荷平衡问题♠ 建议: ♠ 当环境架构是Web时,可采用这个包来设置数据库常驻 连接池 ♠ 了解DRCP(Database Resident Connection Pooling)技术 47/75
  • 48. 开发有关内置包-DBMS_SHARED_POOL♠ DBMS_SHARED_POOL内置包: ♠ 用于将PL/SQL程序等驻留在共享内存里;也可从共享内 存读出被缓存的对象; ♠ 缓存的目的是解决某个PL/SQL程序被淘汰出共享内存的 问题♠ 建议: ♠ 如果希望使用这个包,要以sysdba登录并运行 ORACLE_HOME}/rdbms/admin/dbmspool.sql 脚本; ♠ 授权给用户即可使用这个包;建议不要将过多PL/SQL程 序缓存在共享池内以免起反作用 48/75
  • 49. 开发有关内置包-DBMS_APPLICATION_INFO♠ DBMS_APPLICATION_INFO内置包: ♠ 用于交换环境中执行处理的时间点信息 ♠ DBMS_APPLICATION_INFO 可以设置SESSION的MODULE, ACTION,CLIENT INFO等状态信息 ,跟踪定位出问题的程 序♠ 建议: ♠ 这个包可以在PL/SQL块、批处理程序中调用该包,建议 在存储过程中调用 ♠ 了解会话跟踪 技术 49/75
  • 50. 开发有关内置包-DBMS_LOB♠ DBMS_LOB内置包: ♠ 用于处理LOB数据,包括读、写、追加等 ♠ DBMS_LOB可以实现对大对象的各种处理♠ 建议: ♠ 如果你不是采用功能较强的(如C/C++、JAVA)工具处理LOB 对象的话,使用DBMS_LOB包是最佳选择 ♠ 可在PL/SQL中使用,也可在Pro*C中使用 ♠ 建议不要采用LONG或LONG RAW类型 50/75
  • 51. 开发有关内置包-DBMS_COMPARISON♠ DBMS_COMPARISON内置包: ♠ 11g新增加的包,用于比较和修复两个表数据 ♠ 在Stream中使用,因源数据目标数据可能发生差异♠ 建议: ♠ 如果应用环境需要进行从源数据同步到目标表(转换 或集成)的时候,可使用这个包实现数据的比较与修 复 ♠ 需要以sysdba登录,并运行 {ORACLE_HOME}/rdbms/admin/dbmscmp.sql 脚本完成包的创建 ♠ 建议研究包的使用 51/75
  • 52. 开发有关内置包-DBMS_ADVISOR♠ DBMS_ADVISOR内置包: ♠ 10g新增加的包,用于进行数据库各种优化 ♠ 可对表、索引、撤销等的优化作出建议♠ 建议: ♠ 对于较复杂的应用性能问题,可研究这个包的用法, 建议开发与DBA都要关心 ♠ 相关的包: ♠ DBMS_SQLDIAG ♠ DBMS_SQLTUNE ♠ DBMS_WORKLOAD_REPOSITOR 52/75
  • 53. DBMS_ADVANCED_REWRITE♠ DBMS_ADVANCED_REWRITE内置包: ♠ Version 10.1 or greater ♠ Grant CREATE MATERIALIZED VIEW ♠ Set QUERY_REWRITE_INTEGRITY= TRUSTED 53/75
  • 54. DBMS_ADVANCED_REWRITEdbms_advanced_rewrite.declare_rewrite_equivalence (name VARCHAR2,source_stmt VARCHAR2,destination_stmt VARCHAR2,validate BOOLEAN := TRUE,mode VARCHAR2 := TEXT_MATCH); BEGIN dbms_advanced_rewrite.declare_rewrite_equivalence( UW, SELECT srvr_id FROM servers INTERSECT SELECT srvr_id FROM serv_inst, SELECT srvr_id FROM servers s WHERE EXISTS ( SELECT srvr_id FROM serv_inst i WHERE s.srvr_id = i.srvr_id), TRUE, TEXT_MATCH); END; / 54/75
  • 55. DBMS_FLASHBACK.TRANSACTION_BA CKOUT dbms_flashback.transaction_backout( numtxns NUMBER, xids xid_array, options BINARY_INTEGER DEFAULT NOCASCADE, scnhint NUMBER DEFAULT 0); DECLARE xa sys.xid_array := sys.xid_array(); BEGIN xa.extend; xa(1) := 04000700A2020000; dbms_flashback.transaction_backout(1, xa); END; / 55/75
  • 56. 内容提要♠ 版本功能与内置包♠ 开发者需了解的内置包♠ DBA需了解的内置包♠ DSA需了解的内置包♠ 参考 56/75
  • 57. DBA有关内置包-DBMS_COMPARISON♠ DBMS_FLASHBACK内置包: ♠ 10g新增加的包,用于闪回所做过的DML数据 ♠ 主要是用于人为的操作错误♠ 建议: ♠ 如果需要对某些错误操作的数据进行恢复,需要确定 时间点或SCN号 ♠ 一般建议在EM上使用,如果确定存在困难,可在命令 状态下使用 ♠ 特殊情况下在PL/SQL中使用 57/75
  • 58. DBA有关内置包-DBMS_DATAPUMP♠ DBMS_DATAPUMP内置包: ♠ 用于API的实现数据泵的包 ♠ 可直接在PL/SQL使用♠ 建议: ♠ 对于一些软件产品的备份功能来说,可采用自动的 PL/SQL方式 ,这样可避免用户学习expdp/impdp命令 ♠ 参考10g/11g 原版资料。 58/75
  • 59. DBA有关内置包-DBMS_LOGMNR♠ DBMS_LOGMNR内置包: ♠ 用于对日志文件进行分析,以输出某个时间段内的 DML数据 ♠ 这个包也可对归档文件进行分析,还可生成相反操 作的DML语句 ♠ 主要用于解决审计等问题♠ 建议: ♠ 这个挖掘日志文件数据,以了解日志文件的DML情况 ♠ 对特殊错误的DML进行恢复时,这个包比从备份中恢 复要好,因为它只对错误做恢复 59/75
  • 60. DBA有关内置包-DBMS_RESOURCE_MANAGER♠ DBMS_RESOURCE_MANAGER内置包: ♠ 用于对Oracle系统资源进行管理 ♠ Oracle系统资源包括CPU、 内存、撤销表空间等 ♠ 主要用于复杂环境的资源分配与管理♠ 建议: ♠ 建议在用户类别多,资源紧张情况使用这包 ♠ 先对用户的角色、权限、优先等进行规划,然后使用 这个包进行配置 60/75
  • 61. DBA有关内置包-DBMS_RESOURCE_MANAGER♠ DBMS_RCVCAT内置包: ♠ 用于对数据进行恢复 ♠ RMAN是命令方式,DBMS_RCVCAT 是提供的API接口 ♠ 主要用于复杂环境的资源分配与管理♠ 建议: ♠ 建议在命令或EM环境下使用 ♠ 特殊情况下在PL/SQL使用这个包,如开发软件产品等 61/75
  • 62. DBA有关内置包-DBMS_SPACE♠ DBMS_SPACE内置包: ♠ 用于对段空间进行管理 ♠ 段是占用存储空间的对象,表、索引等 ♠ 主要用于存储空间的有效管理♠ 建议: ♠ 标准版不支持 ♠ 在段存储问题较大时可采用这样的方法管理 62/75
  • 63. DBA有关内置包-DBMS_MONITOR♠ DBMS_MONITOR内置包: ♠ 10g中引入内置包,可跟踪从客户机到中间层、再到 后端数据库的任何用户的会话 ♠ 用于标识创建大量工作量的特定用户♠ 建议: ♠ 在多层架构下,建议采用这个包跟踪会话,以确定 问题的原因 ♠ 建议与DBMS_ APPLICATION_INFO包一起考虑 ♠ 相关的包有DBMS_SERVICE、DBMS_SESSION等 63/75
  • 64. DBA有关内置包-DBMS_SESSION♠ DBMS_SESSION内置包: ♠ 功能是跟踪客户会话 ♠ 用于性能问题的跟踪与安全的控制♠ 建议: ♠ 如果希望进行安全的自动管理,可研究这个包的使用 ♠ 参考David Kurtz的文章 ♠ 与安全相关的内容是SYS_CONTEXT 64/75
  • 65. DBA有关内置包-DBMS_SUPPORT♠ DBMS_SUPPORT内置包: ♠ 这个包用于 跟踪SQL 语句等 ♠ 用于性能的监控,如SQL性能等问题 ♠ 默认安装,这个包不被安装♠ 建议: ♠ conn / as sysdba ♠ @?rdbmsadmindbmssupp.sql ♠ GRANT execute ON dbms_support TO uwclass; ♠ CREATE PUBLIC SYNONYM dbms_support FOR dbms_support; 65/75
  • 66. DBA有关内置包-DBMS_SYSTEM♠ DBMS_SYSTEM内置包: ♠ 这个包用于会话的跟踪 ♠ 用于性能用户性能监控和数据搜集♠ 建议: ♠ 对怀疑的会话进行跟踪,跟踪完成最后取消跟踪 ♠ 跟踪所产生的结果被记录到跟踪文件中,跟踪文件路 径为$ORACLE_HOME/udump 66/75
  • 67. DBA有关内置包-DBMS_LOCK♠ DBMS_LOCK内置包: ♠ 可对所操作的数据进行锁定 ♠ 用于多用户下可能产生同时进行DML操作冲突的控制 ♠ 一般默认下,Oracle只能对表进行内部机制所提供的锁♠ 建议: ♠ 如果应用系统所操作的对象可能出现读写冲突时,建 议你研究这个包的用法 ♠ 参考原版文章 67/75
  • 68. DBA有关内置包-DBMS_UTILITY♠ DBMS_UTILITY内置包: ♠ 这个包是多种过程的集合,它放置了许多的过程,如 DBMS_UTILITY.ANALYZE_SCHEMA、dbms_utility.active_instances 等 ♠ 用于复杂的应用开发♠ 建议: ♠ 如果你开发以个复杂的应用,可使用这个实现各种处 理 ♠ 相关包:DBMS_ODCI 68/75
  • 69. DBA有关内置包-DBMS_SQLTUNE♠ DBMS_SQLTUNE内置包(11g新): ♠ 这个包用于SQL性能分析 ♠ 提供了一个精确地评估前后性能变化的完整的数据库 工作负载的方法。 ♠ 用于复杂的应用开发♠ 建议: ♠ 开发人员与DBA可使用这个包对SQL问题进行分析 ♠ 相关包: DBMS_SQLDIAG 69/75
  • 70. DBA有关内置包-DBMS_SQLDIAG♠ DBMS_SQLDIAG内置包: ♠ 这个包用于SQL性能诊断 ♠ 提供创建和执行SQL Repair Advisor的诊断任务的方法。 ♠ 用于存在问题的SQL诊断♠ 建议: ♠ 开发人员与DBA可使用这个包对SQL问题进行分析 ♠ 参考资料: Oracle 11g数据库管理艺术 70/75
  • 71. DBA有关内置包-DBMS_STATS♠ DBMS_STATS内置包: ♠ 这个包用于对数据库段对象进行统计 ♠ 提供对表、索引、Cluster等进行统计,为CBO提供优化 数据。 ♠ 用于CBO优化模式♠ 建议: ♠ DBA可使用这个包对相关表、索引进行统计 ♠ 参考资料: Oracle 原版 71/75
  • 72. DBA有关内置包- DBMS_RESUMABLE♠ DBMS_RESUMABLE内置包: ♠ 这个包用于对各中表空间进行自动管理 ♠ 提供对表永久表空间撤销表空间、临时表空间的使用 出现问题自动处理方法♠ 建议: ♠ DBA可使用这个包对一些旧的应用进行预防性的维护 ,因为一旦扩展失败意味着DML数据失败 ♠ 参考资料: Oracle 原版 72/75
  • 73. DBA有关内置包- DBMS_REPAIR♠ DBMS_REPAIR内置包: ♠ 用于对坏块进行修理 ♠ 可以发现、标识并修改数据文件中的坏块 ♠ 检查到的坏块标注出来,使随后的dml操作跳过该块。♠ 建议: ♠ DBA可使用这个包对坏块进行诊断 ♠ 从性能角度出发,也可使用这个包进行诊断 ♠ 参考资料: Oracle 原版 73/75
  • 74. DBA有关内置包- DBMS_HM♠ DBMS_HM内置包: ♠ 11g版本引入;HM是Health Management的缩写 ♠ 用于Oracle数据库进行健康管理 ♠ 可报告存在问题的信息♠ 建议: ♠ DBA可使用这个包对Oracle系统进行诊断 ♠ 一般可从EM中使用,但也要理解输出的结果 ♠ 相关包: DBMS_IR 74/75
  • 75. DBA有关内置包- DBMS_WM♠ DBMS_WM内置包: ♠ 9i 版本引入;11g版本增加更多的功能 ♠ 用于工作空间管理(Workspace Manager ) ♠ 提供了为不同表建立不同版本的架构♠ 开发团队建议: ♠ 允许开发人员和DBA在同一个数据库中对数据的多版 本进行管理。 ♠ 它使用作为虚拟环境的工作区组织管理产品数据,保 留数据的多个版本。 ♠ 相对于传统的数据版本管理方式,能更加节约时间、 资金投入和人员投入 75/75
  • 76. 内容提要♠ 版本功能与内置包♠ 开发者需了解的内置包♠ DBA需了解的内置包♠ DSA需了解的内置包♠ 参考 76/75
  • 77. 新的职位-Oracle 系统安全员♠ DSA 数据库安全员: ♠ DSA=database security administrator ♠ 为了实现真正的责权分离,许多RDBMS新添DSA ♠ 要实现DBA/DSA/在责权分离,需要安装Oracle Database Vault 产品♠ Oracle Database Vault: ♠ 实现职责分离、加强内部控制 ♠ 限制DBA和超级用户对业务数据的访问 ♠ 定制和强制实施个性化的安全规则 ♠ 提供各种详细的安全报告用于法规审计 77/75
  • 78. 内置包与授权建议♠ Oracle 系统下存在风险的包: ♠ dbms_sql ♠ utl_file ♠ utl_mail ♠ utl_inaddr ♠ utl_tcp ♠ dbms_lob ♠ dbms_xmlgen ♠ dbms_aw_xml ♠ ctxsys.drithsx ♠ ordsys.ord_dicom ♠ kupp$proc
  • 79. 内置包与授权建议♠ Oracle 9i/10g系统下面包不要轻易授权一般用户: ♠ UTL_SMTP ♠ UTL_TCP ♠ UTL_HTTP ♠ UTL_FILE ♠ DBMS_OBFUSCATION_TOOLKIT ♠ DBMS_RANDOM♠ Oracle 11g已经不允许从外部来使用: ♠ UTL_TCP, UTL_SMTP, UTL_MAIL, UTL_HTTP等
  • 80. 内置包使用与授权建议♠ 撤销将内置包授予Public 公共帐号 ♠ 撤销 Public 权限样例SQL> show USERUser is SYSTEMSQL> revoke execute on utl_httpfrom public force;SQL> revoke execute on utl_tcp from public force;SQL> revoke execute on utl_filefrom public force;SQL> revoke execute on utl_inaddrfrom public force;SQL> revoke execute on utl_smtpfrom public force;SQL> revoke execute on utl_dbwsfrom public force;SQL> revoke execute on dbms_lobfrom public force;SQL> revoke execute on dbms_randomfrom public force;SQL> revoke execute on dbms_obfuscation_toolkit from public force;
  • 81. 内置包使用与授权建议♠ 撤销将内置包授予Public 公共帐号 ♠ 撤销 Public 权限样例SQL> show USERUser is SYSTEMSQL> revoke execute on dbms_crypto_toolkitfrom public force;SQL> revoke execute on dbms_advisorfrom public force;SQL> revoke execute on dbms_ldapfrom public force;SQL> revoke execute on dbms_ldap_utlfrom public force;SQL> revoke execute on dbms_jobfrom public force;SQL> revoke execute on dbms_scheduler from public force;SQL> revoke execute on dbms_ddlfrom public force;SQL> revoke execute on dbms_epgfrom public force;SQL> revoke execute on dbms_xmlgenfrom public force;SQL> revoke execute on dbms_aw_xmlfrom public force;SQL> revoke execute on ctxsys.drithsxfrom public force;SQL> revoke execute on ordsys.ord_dicomfrom public force;
  • 82. 内置包使用与授权建议 ♠ dbms_sql包在10g的处理 ♠ 11g及以上已经修正SQL> show USERUser is SYSSQL> create role ROLE_DBMSSQL;SQL> grant execute on dbms_sql to ROLE_DBMSSQL;SQL> spool grantdbmssql.sqlSQL> select distinct grant ROLE_DBMSSQL to "||owner||"; fromall_dependencies where referenced_name = DBMS_SQL and owner notin (PUBLIC);SQL> spool offSQL> @grantdbmssqlSQL> revoke execute on dbms_sql from PUBLIC;
  • 83. 防止外部端口的访问♠ 对象类型 ♠ HTTPUriType :--as user SYSSQL> revoke execute on HTTPUriType from public force;
  • 84. 防止外部端口的访问♠ 不建议使用口令文件 ♠ 如果使用口令文件,则建议设置:SQL> show USERUser is SYSTEMREMOTE_OS_AUTHENT = FALSE
  • 85. 触发器监控数据库♠ 监控DDL 操作触发器-DDLTrigger ♠ 以sysdba登录SQL> create or replace trigger DDLTriggerAFTER DDL ON DATABASEDECLARErc VARCHAR(4096);BEGIN begin rc:=utl_http.request (http://192.168.2.201/user=||ora_login_user||;DDL_TYPE=||ora_sysevent||;DDL_OWNER=||ora_dict_obj_owner||;DDL_NAME=||ora_dict_obj_name||;sysdate=||to_char(sysdate, YYYY-MM-DD hh24:mi:ss);exception when utl_http.REQUEST_FAILEDthen null;end;END;/
  • 86. 触发器监控数据库♠ 监控DDL 操作触发器-Logon Trigger ♠ 以sysdba登录create or replace trigger sec_logonafter logon on databaseDECLARErc VARCHAR(4096); begin beginrc:=utl_http.request(http://192.168.2.201/logon_user=||user||;sessionid=||sys_context(USERENV,SESSIONID)||;host=||sys_context(USERENV,HOST)||;ip=||ora_client_ip_address||;sysdate=||to_char(sysdate, YYYY-MM-DD hh24:mi:ss));exception when utl_http.REQUEST_FAILEDthen null; end;End sec_logon;/
  • 87. 触发器监控数据库♠ 监控DDL 操作触发器-Error Trigger ♠ 以sysdba登录CREATE OR REPLACE TRIGGER after_error AFTER SERVERERROR ON DATABASE DECLARE pragma autonomous_transaction; id NUMBER; sql_textORA_NAME_LIST_T; v_stmtCLOB; n NUMBER; BEGIN n := ora_sql_txt(sql_text); IF n >= 1 THENFOR i IN 1..n LOOP v_stmt:= v_stmt|| sql_text(i); ND LOOP; END IF;FOR n IN 1..ora_server_error_depth LOOP IF ora_server_error(n) in (900,906,907,911,917,920,923,933,970,1031,1476,1719,1722,1742,1756,1789,1790,24247,29257,29540) THENINSERT INTO system.oraerrorVALUES (SYS_GUID(), sysdate, ora_login_user, ora_client_ip_address,ora_server_error(n), ora_server_error_msg(n), v_stmt);END IF;END LOOP;END after_error;
  • 88. 审计数据库♠ Oracle 系统审计 ♠ 以sysdba登录Declarejj integer := 666666;--job number begin sys.dbms_ijob.submit(JOB=>jj, LUSER =>SYS,PUSER =>SYS, CUSER =>SYS, NEXT_DATE =>sysdate, INTERVAL =>null, BROKEN =>false, WHAT => declarejjinteger := ||jj||;begin execute immediate alter system archivelog current; sys.dbms_ijob.remove(jj); delete from sys.aud$ where obj$name= DBMS_IJOB; commit;end;, sys.dbms_ijob.run(jj);end;/
  • 89. 审计数据库 ♠ Oracle 系统审计 ♠ 以sysdba登录AUDIT CREATE USER BY ACCESS; AUDIT CREATE ANY PROCEDURE BY ACCESS;AUDIT ALTER USER BY ACCESS; AUDIT ALTER ANY PROCEDURE BY ACCESS;AUDIT DROP USER BY ACCESS; AUDIT DROP ANY PROCEDURE BY ACCESS;AUDIT CREATE ROLE BY ACCESS; AUDIT CREATE PUBLIC DATABASE LINK BY ACCEAUDIT SELECT ON DBA_USERS BY ACCESS; AUDIT CREATE PUBLIC SYNONYM BY ACCESS;AUDIT CREATE EXTERNAL JOB BY ACCESS; --10g AUDIT EXECUTE ON DBMS_FGA BY ACCESS;Rel.1 AUDIT EXECUTE ON DBMS_RLS BY ACCESS;AUDIT CREATE JOB BY ACCESS; --10g AUDIT EXECUTE ON DBMS_FILE_TRANSFER BYAUDIT CREATE ANY JOB BY ACCESS; ACCESS;AUDIT CREATE ANY LIBRARY BY ACCESS; AUDIT EXECUTE ON DBMS_SCHEDULER BYAUDIT ALTER DATABASE BY ACCESS; ACCESS;AUDIT ALTER SYSTEM BY ACCESS; AUDIT EXECUTE ON DBMS_JOB BY ACCESS;AUDIT AUDITSYSTEM BY ACCESS; AUDIT SELECT ON SYS.V_$SQL BY ACCESS;AUDIT EXEMPT ACCESS POLICY BY ACCESS; AUDIT SELECT ON SYS.GV_$SQL BY ACCESS;AUDIT GRANT ANY PRIVILEGE BY ACCESS; AUDIT EXECUTE ON SYS.KUPP$PROC BY ACCESAUDIT GRANT ANY ROLE BY ACCESS; AUDIT EXECUTE ON DBMS_XMLGEN BY ACCESSAUDIT ALTER PROFILE BY ACCESS; AUDIT EXECUTE ON DBMS_NETWORK_ACL_ADM BY ACCESS; --11g
  • 90. 内置包资源参考♠ Oracle原厂: ♠ Oracle® Database ♠ PL/SQL Packages and Types Reference ♠ 11g Release 1 (11.1.) ♠ B28419-02♠ OCP: ♠ 11g:D52601GC10-Oracle Database 10g: Advanced PL/SQL ♠ 10g:Oracle Database 10g: Advanced PL/SQL 91/75

×