关键字(Keyword):session,audit,unified audit,会话
问题:
在Oracle数据库中想“删库”,然后没事人地跑掉?
好吧,基本是不可能的了。
但是即使不会在发生这样严重的事,加强数据库的安全管理是必要的。
下面看看今天的问题:
如何监控数据库用户登录和注销信息?
解决方法:
Oracle提供了多种方法监控数据库用户登录和注销信息。
1)通过传统的审计功能
可参考之前发布的以下文章。
【常用命令】监视数据库的用户登录和注销会话信息
2)通过统一审计(12c版本之后)
Oracle12c版本之后,加强了审计功能,导入了统一审计功能。
通过统一审计可以轻松地监控数据库用户登录和注销信息。
关于统一审计可参考如下在线文档。
参考:What Is Unified Auditing?
统一审计监控数据库用户登录的具体方法如下:
1.设置统一审计策略
create audit policy actions logon,logoff;
参考:(CREATE AUDIT POLICY (Unified Auditing) 的语法)CREATE AUDIT POLICY policy [ privilege_audit_clause ] [ action_audit_clause ] [ role_audit_clause ] [ WHEN 'audit_condition' EVALUATE PER { STATEMENT | SESSION | INSTANCE } ] [ ONLY TOPLEVEL ] [ CONTAINER = { ALL | CURRENT } ] ; https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CREATE-AUDIT-POLICY-Unified-Auditing.html#GUID-8D6961FB-2E50-46F5-81F7-9AEA314FC693
2.使审计策略有效
audit policy <策略名>;
3.确认审计结果
可以通过unified_audit_trail 视图来确认审计结果。
测试例如下:(on 19c)
--0.准备测试用户create user TeacherWhat identified by TeacherWhat;grant connect,resource to TeacherWhat;--1.设置统一审计策略create audit policy AUDIT_LOGON actions logon,logoff;--2.使审计策略有效audit policy AUDIT_LOGON;--查看设计策略select USER_NAME,POLICY_NAME,ENABLED_OPT,SUCCESS,FAILURE from audit_unified_enabled_policies where POLICY_NAME ='AUDIT_LOGON';--3.执行测试用户登录conn TeacherWhat/TeacherWhat--4.确认执行结果conn / as sysdbaselect to_char(event_timestamp, 'DD/MM/YYYY HH24:MI:SS.FF3'), action_namefrom unified_audit_trail where dbusername='TeacherWhat' order by 1;--5.使审计策略无效和删除noaudit policy AUDIT_LOGON;drop policy AUDIT_LOGON;
【其他阅读】
【怎么办001】DROP USER ... CASCADE特别慢怎么办?
【怎么办002】想要获取数据库对象的定义(DDL)怎么办
【怎么办】003 如何加强Oracle数据库安全--监控数据导入导出操作
2020年了,还有必要学习Oracle数据库技术么?
云时代的dba你准备好了么?
【杂说】Python之禅--入门Python的正确姿势
【怎么办专栏】
Oracle数据库技术支持专家免费教你解决工作中的实际问题。关于小编:
10+年数据库运维/开发/技术支持经验,多年项目维护/开发/团队管理经验,熟悉Oracle/MySQL/DB2等关系型数据库,翻译出版《MySQL基础教程》,Oracle 11g OCM大师认证、10g/11g/12c OCP、RAC&GI OCE、Cloud等认证专家,IBM DB2 数据库V8.1 DBA认证。
本文仅代表个人观点,与任何公司无关。