Oracle11g审计--权限审计+对象审计
查询oracle数据库审计信息的方法
查询oracle数据库审计信息的方法查询Oracle数据库审计信息的方法1. 概述Oracle数据库的审计功能是一种重要的安全功能,可以帮助管理员监控数据库中的活动,并跟踪和记录对数据库的访问和操作。
审计信息可以用于检测并响应数据库中的潜在安全威胁,同时也可以用于满足合规性要求。
本文将介绍查询Oracle数据库审计信息的方法,帮助管理员获取有关数据库活动的详细报告和分析。
2. 启用审计功能在开始查询审计信息之前,首先需要确保已经启用了Oracle数据库的审计功能。
审计功能通过以下步骤来启用:1) 以sysdba或sysoper权限连接到数据库。
2) 运行以下命令来启用审计功能:ALTER SYSTEM SET audit_trail = db SCOPE=spfile;3) 重启数据库实例使更改生效:SHUTDOWN IMMEDIATE;STARTUP;启用审计功能后,数据库将开始记录指定的审计信息。
3. 查询审计信息要查询Oracle数据库中的审计信息,可以使用以下方法之一:1) 使用Oracle自带的审计视图Oracle提供了一系列的审计视图,用于访问和查询审计信息。
一些常用的审计视图包括:DBA_AUDIT_TRAIL,DBA_COMMON_AUDIT_TRAIL,DBA_FGA_AUDIT_TRAIL等。
管理员可以根据自己的需要选择适当的视图,并使用标准的SQL查询语句来检索审计信息。
可以查询DBA_AUDIT_TRAIL视图来获取数据库级别的审计信息: SELECT * FROM DBA_AUDIT_TRAIL;或者可以查询DBA_COMMON_AUDIT_TRAIL视图来获取通用的审计信息:SELECT * FROM DBA_COMMON_AUDIT_TRAIL;2) 使用审计报告工具除了使用审计视图,还可以使用一些第三方的审计报告工具来查询和分析审计信息。
这些工具通常提供更直观和丰富的报告和分析功能,可以帮助管理员更方便地浏览和理解审计信息。
oracle 审计日志 设置规则
oracle 审计日志设置规则Oracle 审计日志设置规则在使用Oracle数据库的过程中,审计日志是十分重要的安全措施之一。
它可以记录所有数据库中的操作,包括用户登录、数据更改、数据访问等。
通过设置审计日志规则,您可以更好地监控和保护数据库的安全性。
以下是一些设置Oracle审计日志规则的重要步骤:1. 定义审计目标:首先,您需要明确设置审计日志的目标。
考虑您需要监控的数据库操作类型,比如是否需要审计所有用户的登录、所有的数据更新操作等。
2. 创建审计策略:在Oracle数据库中,您可以使用`DBMS_AUDIT_MGMT` 包来创建审计策略。
通过指定数据库对象和操作类型,您可以定义审计规则。
例如,您可以设置审计规则仅审计某个特定用户的操作,并排除其他用户。
3. 启用审计选项:在设置好审计规则后,您需要启用审计选项以开始记录审计日志。
可以通过以下步骤启用审计选项:- 使用`DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY`过程,将审计日志输出到特定的目标文件或操作系统日志中。
- 使用`DBMS_AUDIT_MGMT.ENABLE_AUDIT_OPTION`过程,启用需要审计的操作项。
4. 监控审计日志:一旦启用审计选项,数据库将开始记录相应的操作到审计日志文件中。
您可以使用SQL查询或Oracle Enterprise Manager等工具来监控审计日志。
定期检查审计日志以确认是否出现不寻常的活动或潜在的安全威胁。
5. 设置审计日志管理策略:审计日志的文件管理很重要,您可以使用`DBMS_AUDIT_MGMT`包中的过程设置审计日志的管理策略。
可以定义审计日志的保留时间、日志文件的大小限制等。
定期清理旧的审计日志,以确保系统性能和安全。
通过设置Oracle审计日志规则,您可以更好地了解数据库中发生的操作,并及时发现潜在的安全问题。
请确保审计日志的记录和审计管理策略的设置符合您的安全需求,并进行定期的审计日志分析。
oracle审计
审计可以分为3类。
或者说,可以从三种角度去启用审计。
1、语句审计(Statement Audting).对预先指定的某些SQL语句进行审计。
这里从SQL 语句的角度出发,进行指定。
审计只关心执行的语句。
例如,audit CREATE TABLE;命令,就表明对“CREATE TABLE”语句的执行进行记录。
不管这语句是否是针对某个对象的操作2、权限审计(Privilege Auditing)对涉及某些权限的操作进行审计。
这里强调“涉及权限”例如,audit CREATE TABLE;命令,又可以表明对涉及“CREA TE TABLE”权限的操作进行审计。
所以说,在这种命令的情况下,既产生一个语句审计,又产生了一个权限审计。
有时候“语句审计”和“权限审计”的相互重复的。
这一点可以后面证明。
3、对象审计(Object Auditing)。
记录作用在指定对象上的操作。
三、如何启用审计。
通过数据库初始化参数文件中的AUDIT_TRAIL 初始化参数启用和禁用数据库审计。
DB 启用数据库审计并引导所有审计记录到数据库的审计跟踪OS 启用数据库审计并引导所有审计记录到操作系统的审计跟踪。
可以用AUDIT_FILE_DEST 初始化参数来指定审计文件存储的目录。
NONE 禁用审计这个值是默认值四、如何设定所需的审计AUDIT语句。
例如:审计属于用户jward 的dept 表上的所有的SELECT INSERT 和DELETE 语句AUDIT SELECT, INSERT, DELETEON jward.dept;五、控制何时触发审计动作。
1)By session / By Accessby session对每个session中发生的重复操作只记录一次by access对每个session中发生的每次操作都记录,而不管是否重复。
2)Whenever successful/ Whenever not successfulWhenever successful表示操作成功以后才记录下来。
Oracle 11g数据库审计功能解析
Oracle 11g数据库审计功能解析本文我们主要介绍一个Oracle 11g数据库中审计功能的应用实例,希望能够对您有所帮助。
在用户的profile 属性里面有一个属性:FAILED_LOGIN_ATTEMPTS,该参数默认值是10. 即当我们用户连续10次输入错误密码,这个用户就会被锁住。
用户连词失败次数是在表USER$ 中的lcount字段记录的。
该值默认为0. 当失败一次,该值加1. 成功登录,该值清零。
一般在生产环境下,会根据具体情况设置这个参数,如果防止用户被锁,则将这个参数设置为UNLIMITED. 这个是注意的地方。
当然设置成无限也有它的弊端,比如不能防止暴力破解数据库密码。
有关profile 的更多内容参考:Oracle 用户profile 属性在Oracle 11g中默认启用了对登录注销操作LOGON/LOGOFF的审计,那么如果我们发现用户被锁,那么可以应用11g的审计功能来查看从哪台机器上发来的链接失败导致用户被锁,可以帮助我们定位问题。
脚本如下:1.SQL> selectos_username,userhost,terminal,username,count(*)2. 2 from dba_audit_trail3.3 where returncode = 10174.4 group byos_username,userhost,username,terminal;5. OS_USERNAME USERHOST TERMINAL USERNAME COUNT(*)6.------------------------------------------------------------ ------------------------ ----------7. DavidDai\Administrator WORKGROUP\DAVIDDAI DAVIDDAI ICD 78.DavidDai\Administrator WORKGROUP\DAVIDDAI DAVIDDAI SYSTEM 99. DavidDai\Administrator WORKGROUP\DAVIDDAI DAVIDDAI SYS 310.DavidDai\Administrator WORKGROUP\DAVIDDAI DAVIDDAI EXIT 1注意:对于LOGON PER SECOND很高的数据库,如果应用程序配置文件中的数据库用户密码不正确,同时应用在短期内发起大量会话登录数据库的话可能引发频繁的dc_users字典缓存锁,用户登录无法成功,乃至整个实例hang住。
oracle审计用户
oracle审计用户oracle审计主要用于记录用户对数据库所做的操作,基于配置的不同,审计的结果会放在操作系统文件中或者系统表中,默认情况下,使用管理员权限连接实例,开启及关闭数据库是会强制进行审计的,其它的基础的操作则没有进行审计,在一些安全性要求比较高的环境是需要做一些审计的配置的,下文简单介绍一下oracle中审计的配置方法,几种审计方法的不同,以及如何对管理员进行审计.一。
oracle中审计的配置:1.审计相关的三个重要参数:a.audit_file_dest:指定审计文件存放的位置:b.audit_trail:指定审计的类型:none:为系统默认值,不进行审计DB:将审计结果放在数据库表中,aud$,通常只记录连接的信息.DB_EXTENDED:将审计结果放在数据库表中,记录具体执行语句OS:将审计结果记录在操作系统文件中,文件位置由audit_file_dest参数指定,(windows系统中将直接在事件查看器的系统日志中记录)XML:将审计结果记录在audit_file_dest指定位置下的XML文件中。
c.audit_sys_operations:是否对sysdba用户做审计,关于sysdba 用户审计的结果,linux存放在audit_file_dest参数指定位置的aud文件中,windows存放在事件查看器的系统日志中2.审计的级别:开启审计后,可在statement语句、privilege权限和object对象级别对数据库进行审计。
a.statement:按语句来审计如audit table xxx;b.privilege:按权限来审计,如audit lect any tablec.object:按对象来审计,如audit all ployees by HR,只会对hr 用户对employees表执行的操作做审计3.审计的其它相关选项:by access 每个被审计的操作都会生成一条记录by ssion 默认值,每个会话里同类型操作只会生成一条audit trailwhenever successful:操作成功才审计whenever not successful:操作不成功才审计4.查询审计结果的视图沈阳成人英语培训浙江大学2023年录取分数线dba_audit_trail:查看所有的普通审计记录kptdba_fga_audit_trail:查看所有细粒度审计记录sys.aud$审计结果实际存放的系统表5.取消审计: noaudit lect any table6.开启审计方法a.查看参数SQL show parameter auditNAME TYPE VALUE-----------------------------------------------------------------------------audit_file_dest string /u01/oracle/product/admin/orcl/adumpaudit_sys_operations boolean FALSEaudit_syslog_level stringaudit_trail string NONEb.设置审计类型并重启数据库SQL alter system t audit_trail = db_extended scope=spfile;existenceSystem altered.c.审计用户对表操作SQL audit table ;音标mp3Audit succeeded.d.切换用户后创建表SQLconnecttest/********.1.12/orclConnected.SQL create table audtest (id int);Table created.e.管理员登录查看审计结果SQLconnectsys/**********.1.12/orclassysdbaConnected.SQL lect urname,sql_text from dba_audit_trail;USERNAME------------------------------SQL_TEXT--------------------------------------------------------------------------------TESTmy hobbiescreate table audtest (id int)f.审计系统管理员操作SQL alter system t audit_sys_operations= true scope=spfile; vrf System altered.SQLconnectsys/**********.1.12/orclassysdbaConnected.SQL create table systest (id int);Table created.SQLconnectsys/**********.1.12/orclassysdba Connected.SQL create table systest (id int);Table created.SQL create table systest1 (id int);Table created.g.查看系统管理员审计结果Audit file /u01/oracle/product/admin/orcl/adump/ora_5895.aud Oracle Databa 10g Enterpri Edition Relea 10.2.0.1.0 - Production 北京西班牙语培训With the Partitioning, OLAP and Data Mining options ORACLE_HOME = /u01/oracle/product/10.2/db1System name: LinuxNode name: oracle1Relea: 2.6.9-55.ELsmpVersion: #1 SMP Fri Apr 20 17:03:35 EDT 2023 Machine: i686Instance name: orclRedo thread mounted by this instance: 1Oracle process number: 20Unix process pid: 5895, image: oracleorcl@oracle1Mon Mar 28 23:03:28 2023ACTION : 'CONNECT'DATABASE USER: 'sys'PRIVILEGE : SYSDBACLIENT USER: AdministratorCLIENT TERMINAL: PC-20230718IUGMSTATUS: 0Mon Mar 28 23:03:42 2023ACTION : 'create table systest (id int)'DATABASE USER: 'sys'PRIVILEGE : SYSDBACLIENT USER: AdministratorCLIENT TERMINAL: PC-20230718IUGMSTATUS: 0Mon Mar 28 23:08:09 2023ACTION : 'create table systest1 (id int)'swift code是什么方式状语DATABASE USER: 'sys'PRIVILEGE : SYSDBACLIENT USER: AdministratorCLIENT TERMINAL: PC-20230718IUGMSTATUS: 0"ora_5895.aud" 38L, 995C。
Oracle11g数据库审计
Oracle11g数据库审计问题描述:使⽤Oracle 11g的数据库审计问题解决:(1)激活数据库审计(1.1)查看数据库审计是否已经开启如上图所⽰:⾸先使⽤⽤户登陆sqplus,(普通⽤户,或者dba都可以),然后使⽤conn /as sysdba注意:(a)以上使⽤sqlplus可以成功进⾏数据库审计的命令操作,但是在使⽤PL/SQL Developer command line进⾏数据库审计操作时,有些命令⽆法识别例如shutdown immediate (重启数据库)(b)以上使⽤conn / as sysdba 进⾏数据库登陆,使⽤其他⽤户登陆进⾏数据库审计操作时不起作⽤的(1.2)查看数据库审计是否已经开启如上所⽰,使⽤ show parameter audit ;可以查看数据库审计的信息其中audit_sys_operations 的value为false,意味着数据库审计未开启其中audit_trail 的value为DB参数详解:AUDIT_TRAIL启⽤或禁⽤数据库审计。
当设置该参数为NONE或FALSE时,将禁⽌数据库审计;当设置该参数为OS时,将激活数据库审计,并将审计记录写⼊到OS审计跟踪⽂件中;当设置该参数为DB或TRUE时,将激活数据库审计,并将审计记录写⼊到数据字典SYS.AUD$中;当设置该参数为DB_EXTENDED时,不仅将审计记录写⼊到数据字典SYS.AUD$中,还会填充该数据字典的SQLBIND和SQLTEXT列。
(1.3)激活数据库审计如上所⽰修改系统信息,激活数据库审计参数详解:spfile是存储初始化参数的⽂件,还有⼀种是pfile也是存储初始化参数的⽂件,spfile是服务器端维护的,pfile是客户端维护的spfile只能通过系统更改,pfile可以⼿动修改。
(1.4)重启数据库-----应⽤对系统的修改重新查看审计的信息如上显⽰了audit_sys_operations 的值为true,同时audit_trail 的值为db_extended说明数据库审计已经激活注意:以上重新启动数据库使⽤了startup force 命令,同时也可以分别使⽤:shutdown immediate ; 关闭数据库startup;启⽤数据库(2)使⽤审计信息注意:(a) 审计⼀般只⽤于对普通⽤户操作,⼀般不审计SYS⽤户(b) 对于windows系统,对sys⽤户的审计信息并不存在AUDIT_FILE_DEST参数指定的⽬录⾥,⽽是在windows的事件管理器中。
Oracle 11g跟踪数据库变化的数据(audit审计)
Oracle 11g跟踪数据库变化的数据(1)激活审计SQL> conn /as sysdba已连接。
SQL> show parameter audit_sys_operations;NAME TYPE V ALUE------------------------------------ ----------- ------------------------audit_sys_operations boolean FALSESQL> show parameter audit_trail;NAME TYPE V ALUE------------------------------------ ----------- ------------------------------audit_trail string NONESQL> alter system set audit_sys_operations=true scope=spfile;系统已更改。
SQL> alter system set audit_trail=db scope=spfile;系统已更改。
SQL> startup force;ORACLE 例程已经启动。
Total System Global Area 1071333376 bytesFixed Size 1375792 bytesVariable Size 536871376 bytesDatabase Buffers 528482304 bytesRedo Buffers 4603904 bytes数据库装载完毕。
数据库已经打开。
SQL> show parameter audit_sys_operations;NAME TYPE V ALUE------------------------------------ ----------- ------------------------------audit_sys_operations boolean TRUESQL> show parameter audit_trail;NAME TYPE V ALUE------------------------------------ ----------- ------------------------------audit_trail string DB(2)1.定义数据库需要审计的表SQL>executedbms_fga.add_policy(object_schema=>'scott',object_name=>'emp',policy_name=>'chk_emp',sta tement_types=>'insert,update,delete');PL/SQL 过程已成功完成。
oracle10g日志审计操作文档
oracle10g日志审计操作文档Oracle10g审计1、查看审计是否打开首先登陆oracle后输入show parameter audit_trail来查看审计是否打开SQL > show parameter audit_trail ;返回结果:NAME TYPE V ALUEudit_trail string NONENONE表示审计未打开。
说明V ALUE :返回值是NONE/FALSE表示审计未打开;返回值是DB/TURE表示审计功能已经打开2、打开审计SQL > alter system set audit_trail=’DB’scope=spfile ;这里对audit_trail=进行说明:audit_trail=’DB’表示把审计日志记录到数据库sys.audit$表中。
audit_trail=’DB,extended’在DB选项基础上,在audit$表中还增加了SQLBIND和SQLTEXT两个clob栏位,用来存储SQLBIND 和SQLTEXT信息。
audit_trail=‘OS’审计结果存放在操作系统的审计信息中,若是windows 平台,audit trail会记录在windows的事件管理器中,若是linux/unix平台则会记录在audit_file_dest参数指定文件中。
audit_trail=‘xml’审计结果存放在XML中, 并包含XML文件可以由数据库以外的工具方便地处理,过滤出有用的事件,与其它系统中的审计日志组合,并格式化HTML显示,操作系统文件提供比SYS.AUD$表更强大的安全性,特别是在希望阻止数据库管理员查看或修改审计跟踪的情况下,即使关闭数据库实例,仍然可以继续使用保存在数据库外的审计日志。
用以下代码确定写入审计文件的目录:audit_file_dest='directorypath' 。
注意,directorypath这不是一个目录对象,,而是操作系统目录的实际路径名。
Oracle审计功能解读
2、权限审计(Privilege Auditing)
对涉及某些权限的操作进行审计。这里强调 “涉及权限”
例如,audit CREATE TABLE;命令,又可以表明 对涉及“CREATE TABLE”权限的操作进行审 计。 所以说,在这种命令的情况下,既产生一个语 句审计,又产生了一个权限审计。 有时候“语句审计”和“权限审计”的相互重 复的
1、语句审计(Statement Auditing) 2、权限审计(Privilege Auditing) 3、对象审计(Object Auditing)
1、语句审计(Statement Auditing)
对预先指定的某些SQL语句进行审计。这 里从SQL语句的角度出发,进行指定。审 计只关心执行的语句。 例如,audit TABLE;命令,就表明对 "create table、drop table"语句的执行进 行记录。 不管这语句是否是针对某个对象的操作
语句审计实例
1、设置审计 conn sys/jsj@ as sysdba
select username from dba_users;
Audit table by user04 by access; Audit index by user04 by access;
查看审计语句级设置
3、对象审计(Object Auditing)。 记录作用在指定对象上的操作。
如何启用审计
通过数据库初始化参数文件中的 AUDIT_TRAIL 初始化参数启用和禁用 数据库审计。 AUDIT_TRAIL = DB/OS/none
Shutdown immediate startup
DB 启用数据库审计并引导所有审计记录到数 据库的审计跟踪
oracle审计功能
ORCL>exec dbms_fga.drop_policy(object_schema=>'ZBTEST', object_name=> 'zbtestt1', policy_name=> 'check_t_audit');
PL/SQL procedure successfully completed.
Connected.
sys@ORCL)> insert into zbtestt1 values(1);
1 row created.
ORCL> create table zbtestt2(c1 number);
Table created.
sys@ORCL(128.192.128.1)> delete from zbtestt2;
0 rows deleted.
查看是否成功抓取SQL
select username,sql_text from dba_audit_trail;
USERNAME SQL_TEXT
---------- --------------------------------------------------
使策略失效的方法:
ORCL>exec dbms_fga.disable_policy(object_schema=>'ZBTEST', object_name=> 'zbtestt1', policy_name=> 'check_t_audit');
使策略生效的方法:
ORCL>exec dbms_fga.enable_policy(object_schema=>'ZBTEST', object_name=> 'zbtestt1', policy_name=> 'check_t_audit');
oracle审计策略
oracle审计策略一、什么是Oracle审计?Oracle审计是指通过记录数据库中的操作以及对数据库对象的访问,来追踪和监控数据库的活动。
审计可以帮助管理员了解用户对数据库的访问情况、检测安全威胁、满足合规性要求等。
二、为什么需要Oracle审计?1. 满足合规性要求许多行业和组织都有强制性的合规性要求,如Sarbanes-Oxley法案、HIPAA等。
这些法规要求企业必须记录和监控其信息系统中的活动,以确保数据安全和隐私保护。
2. 检测安全威胁Oracle审计可以帮助管理员及时发现潜在的安全威胁,如未经授权的访问、恶意软件入侵等。
3. 了解用户行为通过审计记录,管理员可以了解用户对数据库的访问情况,包括哪些用户进行了哪些操作,从而更好地管理和优化数据库。
三、Oracle审计策略1. 审计级别Oracle提供了三种审计级别:标准审计、详细审计和完整审计。
标准审计只记录成功或失败的登录事件;详细审计记录所有DDL语句(如CREATE TABLE)以及所有DML语句(如SELECT、INSERT、UPDATE、DELETE)的执行情况;完整审计不仅记录详细审计中的内容,还会记录所有SELECT语句的执行情况。
2. 审计对象Oracle审计可以针对数据库实例、用户、角色、表空间、表等对象进行设置。
管理员可以根据需要选择需要审计的对象。
3. 审计记录Oracle审计可以将记录保存在操作系统文件中,也可以保存在数据库中。
管理员可以根据需要选择合适的存储方式,并设置审计日志文件大小和保留时间。
4. 审计策略管理员应该制定合适的审计策略,包括审计级别、审计对象、审计记录等方面。
应该考虑到安全性和性能之间的平衡,避免过度或不足的审计。
5. 审核和报告管理员应该定期审核和分析审计记录,并生成相应的报告。
这些报告可以帮助管理员了解数据库活动情况,检测安全威胁,满足合规性要求等。
四、如何开启Oracle审计?1. 开启标准审计在SQL*Plus中使用以下命令:ALTER SYSTEM SET AUDIT_TRAIL=DB SCOPE=SPFILE;SHUTDOWN IMMEDIATE;STARTUP;2. 开启详细或完整审计在SQL*Plus中使用以下命令:AUDIT ALL BY USERNAME BY ACCESS;3. 设置审计对象在SQL*Plus中使用以下命令:AUDIT SELECT TABLE, UPDATE TABLE, DELETE TABLE BY HR;4. 设置审计记录在SQL*Plus中使用以下命令:ALTER SYSTEM SETAUDIT_FILE_DEST='/u01/app/oracle/admin/orcl/adump'; ALTER SYSTEM SET AUDIT_FILE_DEST_SIZE=100M;5. 审核和报告在SQL*Plus中使用以下命令:SELECT * FROM DBA_AUDIT_TRAIL;管理员还可以使用Oracle Audit Vault和Database Firewall等工具来简化审计管理和报告。
Oracle审计功能详解
Oracle审计功能详解一、审计分类:Oracle中审计总体上可分为“标准审计”和“细粒度审计”后者也称为“基于政策的审计”,在Oracle10G之后功能得到很大增强。
其中标准审计可分为用户级审计和系统级审计。
用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。
系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。
二、标准审计:2.1 分类:在ORACLE中分别支持以下三种标准审计类型:◆语句审计,对某种类型的SQL语句审计,不指定结构或对象。
◆特权审计,对执行相应动作的系统特权的使用审计。
◆对象审计,对一特殊模式对象上的指定语句的审计。
这三种标准审计类型分别对如下3方面进行审计:◆审计语句的成功执行、不成功执行,或者其两者。
◆对每一用户会话审计语句执行一次或者对语句每次执行审计一次。
◆对全部用户或指定用户的活动的审计。
当数据库的审计功能打开后,在语句执行阶段产生审计记录。
审计记录包含有审计的操作、用户执行的操作、操作的日期和时间等信息。
审计记录可存在数据字典表(称为审计记录)或操作系统审计记录中。
数据库审计记录是在SYS模式的AUD$表中。
2.2 和审计相关的两个主要参数Audit_sys_operations:默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,假如数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。
假如是windows平台,audti trail会记录在windows的事件管理中,假如是linux/unix平台则会记录在audit_file_dest参数指定的文件中。
Oracle管理之审计
课程目标
• 课程目标: • 安全和审计的职责 • 启用标准数据库审计 • 设置审计选项 • 查看审计信息 • 维护审计记录
1、职责分离
拥有DBA权限的用户必须是可信的:DBA需要最高级别权限。 要考虑以下内容: 1. 滥用信任 2. 审计线索放在受信任的位置 3. Oracle数据库钱夹:Oracle数据库钱夹可以用于强制执行权限分离,DBA是不允许
• 审计的类型:
1. 强制性审计:不管其他的审计选项或参数,某些动作必须被审计。强制审计日志的原因是 数据库需要记录一些数据库活动,比如授权用户的连接。
2. 标准数据库审计:使用初始化参数audit_trail,在系统级别启用。选择要审核的对象和权 限,并通过AUDIT命令设置审核属性。
3. 基于值的审计:标准数据库审计的扩展,不仅捕获发生的审计事件,还包括插入,更新或 删除的实际值。通过数据库触发器实现了基于值的审计。IT_TRAIL参数(从初始化参数页)或使用ALTER SYSTEM命令设置 AUDIT_TRAIL参数。因为这是一个静态的参数,所以修改后必须重新启动数据库才能生效。
2. 如果使用数据库配置助手(DBCA)创建的数据库,默认AUDIT_TRAIL参数设置为DB。当 AUDIT_TRAIL设置DB,默认行为是将审计线索记录到AUD$表。大多数情况下不会对数据 库性能有很大的影响。
7、指定审核选项
• SQL语句审计:可以审计任何对表的数据定义语言(DDL)语句,包括创建表,删除表,截 断表等等。SQL语句审计也可以用于审核用户以及执行语句成功或者失败:
SQL> audit table by hr whenever not successful;
• 系统权限审计:用于审计系统权限的使用(如DROP ANY TABLE)。可以用于审核用户以及 执行语句成功或者失败。默认情况下使用BY ACESS。每次审核系统权限就会生成一条审核记 录。可以通过BY SESSION对记录进行分组,一个会话中的相同语句类型对应一条记录,减 少对系统性能和存储的影响。
ORACLE11g质量检查标准
Oracle11g 通用巡检项SSIA27A 检查数据库版本以oracle用户分别登录主备节点。
执行如下命令:sqlplus / as sysdbaSQL> select * from v$version;Oracle11G的版本为及以上。
显示类似如下信息:BANNER--------------------------------------------------------------------------------Oracle Database 11g EnterpriseEdition Release .1.0 - 64bitProductionPL/SQL Release .1.0 -ProductionCORE .1.0 ProductionTNS for HPUX: Version .1.0 -ProductionNLSRTL Version .1.0 -Production如果与指定规划版本不符合则联系外购商升级到指定规划版本。
SSIA28A 检查安装路径以oracle用户分别登录到两个节点上。
执行如下命令:% echo $ORACLE_BASE% echo $ORACLE_HOME 对于ATAE路径为:ORACLE_BASE为/opt/app/oracleORACLE_HOME为/opt/app/oracle/product/如果安装路径与不一致,则向安装人员确认。
SSIA32A 检查l(非RAC)以oracle用户分别登录到两个节点上。
执行如下命令:显示类似如下信息:如果不一致,请根据实际情况修改。
SSIA34A (非RAC)以oracle用户分别登录到两个节点上。
执行如下命令:% cat $ORACLE_HOME HOST的取值为浮动IP地址或浮动IP地址对应的逻辑主机名;显示类似如下信息:如果不一致,请根据实际情况修改SSIA35A 检查数据库监以oracle用户分别登录到两个节显示的信息如果包含:The。
oracle审计规则100条
oracle审计规则100条Oracle是一种常用的关系型数据库管理系统,被广泛应用于企业的数据存储和管理中。
为了确保数据库的安全性和合规性,Oracle审计规则起到了重要的作用。
下面将介绍100条Oracle审计规则,以帮助企业更好地管理和保护其数据库。
1. 启用审计功能,记录所有数据库活动。
2. 定期审查审计日志,发现异常活动。
3. 限制对审计日志的访问权限,只允许授权人员查看。
4. 对数据库管理员进行背景调查,确保其信任和可靠性。
5. 确保数据库管理员不滥用其权限。
6. 对数据库管理员的操作进行审计。
7. 确保数据库管理员的密码强度,定期更换密码。
8. 禁止共享数据库管理员账号和密码。
9. 禁止使用默认的数据库管理员账号和密码。
10. 禁止使用弱密码,如123456、password等。
11. 禁止使用与用户名相同的密码。
12. 禁止使用容易被猜测的密码,如生日、电话号码等。
13. 禁止使用过去使用过的密码。
14. 禁止将密码存储在明文形式。
15. 启用密码复杂性检查,要求密码包含大小写字母、数字和特殊字符。
16. 设置密码过期策略,定期要求用户更换密码。
17. 禁止共享数据库账号和密码。
18. 禁止使用默认的数据库账号和密码。
19. 禁止使用弱密码,如123456、password等。
20. 禁止使用与用户名相同的密码。
21. 禁止使用容易被猜测的密码,如生日、电话号码等。
22. 禁止使用过去使用过的密码。
23. 禁止将密码存储在明文形式。
24. 启用密码复杂性检查,要求密码包含大小写字母、数字和特殊字符。
25. 设置密码过期策略,定期要求用户更换密码。
26. 禁止使用未经授权的数据库连接工具。
27. 禁止使用未经授权的数据库客户端。
28. 禁止使用未经授权的数据库驱动程序。
29. 禁止使用未经授权的数据库插件。
31. 禁止使用未经授权的数据库脚本。
32. 禁止使用未经授权的数据库存储过程。
ORACLE审计17页word文档
审计表的多少,以及对多少操作进行审计,这是性能和数据量的关键。
可以分表分操作进行审计:1.确定正在使用的表不用审计,只审计不确定的表。
这样就排除了部分表。
2.不确定的表,先审计update,这样产生的审计数据应该比较少,审计一段时间后,把这些执行过update的表也排除掉,关掉这些表的update审计。
3.剩余的表,执行insert审计,一段时间后,又会排除掉一部分表。
4.剩下的表,执行select审计。
我没在正式库上做过审计,上面说的也不是经验,只是理论哈。
关于审计的存储,tom提供了一种方法,贴出来看看:7. 审计存储方式许多行业中,都需要保留相当长时间的审计跟踪信息。
可以使用分区和短空间压缩,最为有效的方式是分区。
例如,按月对审计信息进行分区。
第一个月中,只是向分区表中插入数据。
该月结束前,需要新增加一个分区,来存储下月的审计信息。
下月开始后不久,需要使用alter table命令移动上个月的分区(这还有压缩数据的作用),将其从一个读写表空间移动到一个只读表空间中。
这样就可以一个月备份一次只读表空间(将分区移动到该表空间之后才备份)。
这样,可以保证有一个正确、干净的当前表空间只读副本,然后在这个月中不再对其备份。
审计跟踪信息可以有以下表空间:一个当前在线读写表空间:只是向其中插入审计信息一个只读表空间:其中包含“当前这一年”的审计跟踪信息分区,在此采用一种压缩格式。
在每个月的月初,设置为读写模式,向这个表空间中移入上个月的审计信息,并进行压缩,再使之称为只读表空间,并完成备份。
用于去年、千年等的一系列表空间:这些表空间都是只读模式,甚至可以放在磁盘上。
这样,就很容易地完成了净化。
同样,归档也很轻松,只需先传送一个表空间,以后再恢复。
通过压缩可以减少空间的占用。
备份的工作量会减少,因为在许多系统中,单个最大的数据集就是审计跟踪数据。
如果可以从每天的备份中去掉某些或全部审计跟踪数据,可能会带来显著的差别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例子:
Oracle10g审计默认关闭,Oracle11g默认情况是开启的,查看参数,audit_trail=DB,此时只开启系统级别审计权限,包括:登陆、退出、增删改用户等。
查看对象拥有的审计内容,发现没有针对单独用户设置权限
设置用户test系统级别审计
TEST用户执行SQL:
CREATE TABLE ZM123456(ID INT);
COMMIT;
select * from dba_audit_trail order by EXTENDED_TIMESTAMP desc;
Java代码
1.2> 权限审计:对某一个系统权限的使用状况进行审计。
这里强调系统权限()。
2. a. 使用audit语句定义权限审计语法如下:
3.audit privilege_name [by user_name]| [by session|access] [whenever [not] su
ccessful]
4.privilege_name: 表示系统权限名称
er_name: 表示用户名
6.例如:audit create table 可以表示对涉及creat table 权限的操作进行审计。
7.
8. b. 使用noaudit语句取消权限审计
9.如:noaudit alter table by scott;
10.
11.查看对哪些用户进行了权限Audit
12.select user_name, privilege,success,failure from dba_priv_audit_opts order b
y user_name;
Java代码
1.3> 对象Audit:监视所有用户对某一个对象(表,视图...)的访问情况。
对一个特殊模式对象上
的DML(Data Manipulation Language)语句进行审计。
记录作用在指定对象上的操作。
2.例如:audit select on scott.dept语句,表示对指定scott用户的dept表,Audit对
其进行的select语句。
3. audit select,update,delete on scott.dept;
4.设置对象审计
5.audit schema_object_clause on schema [by session|access] [whenever [not] su
ccessful]
6.schema_object_clause: 指定对象访问的类型以及访问对象;
7.schema: 表示所属的用户名,或者所属的用户模式名称。
8.
9.停止对用户对象进行审计:使用noaudit
10.查询对象审计的信息:
select username,timestamp,owner,action_name,obj_name from dba_audit_object;
Java代码
1.审计相关的视图
2.dba_audit_trail:保存所有的audit trail,实际上它只是一个基于aud$的视图。
其它的视
图dba_audit_session,dba_audit_object,dba_audit_statement都只是
dba_audit_trail的一个子集。
3.dba_stmt_audit_opts:可以用来查看statement审计级别的audit options,即数据库设置
过哪些statement级别的审计。
4.dba_obj_audit_opts,dba_priv_audit_opts视图功能与之类似
5.all_def_audit_opts:用来查看数据库用on default子句设置了哪些默认对象审计。