在当前的信息化时代,数据安全已经成为企业运营中不可或缺的一部分。作为数据库管理系统中的佼佼者,Oracle提供了强大的安全保护机制。其中其中启用审计功能便是其中一个重要组成部分。本文就将详细介绍如何在Oracle中启用审计功能以及实施安全记录保护。
一. 启用审计功能
启用审计功能是后面安全过程的起点,Oracle即可有功将数据库的各类操作记录日志。在数据库管理方面,日志文件是非常关键的一环,因为它可以记录日常所有的数据库重要事件。也正因如此,使用者对启用审计功能这一步骤必须非常谨慎,以免出现不当操作,极有可能导致日志记录的问题。
下面我们将会针对这个问题,在Oracle中启用审计功能:
1. 连接sys用户并授权dba权限:
sqlplus "/ as sysdba"
SQL> grant dba to testuser;
2. 创建审计存储:
SQL> connect testuser/testuser
SQL> create table audit_table(name varchar(30), time timestamp);
3. 启用审计功能:
SQL> audit all on database by access;
二. 实施安全记录保护
在启用审计功能后,当然会有一些重要事件的记录输出到日志中。但是即使审计功能打开了,数据也并不完全安全。比如说,加密和key管理还是没有实现的。但幸运的是,Oracle 12c中引入了“新特性”,实现了数据库安全的控制与保护。我们就以 Oracle 12c为例,介绍如何实施安全记录保护。
需要保护的数据在一个防止意外访问的安全容器中,这个容器叫做TDE密钥库(Oracle12c的新特性之一)。因此,我们需要创建一个“访问控制列表”,来限制哪些用户可以访问该密钥库。
1. 创建ACL:
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'tdeacl.xml',
description => 'ACL describing how to access TDE keystore',
principal => 'SYS',
is_grant => TRUE,
privilege => 'connect');
END;
/
2. 授权ACL:
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE (acl => 'tdeacl.xml',
principal => 'PUBLIC',
is_grant => TRUE,
privilege => 'use-client-certificates');
END;
/
3. 修改ACL的状态:
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'tdeacl.xml',
host => 'localhost');
END;
/
此时,TDE密钥库的访问已经受到限制。现在我们需要在Oracle数据库中创建一个TDE容器,然后在其中存储几张表。
1. 创建TDE容器:
SQL> CREATE TABLESPACE secret
DATAFILE '/u01/app/oracle/oradata/orcl/secret01.dbf'
SIZE 50M AUTO EXTEND ON;
SQL> CREATE STORED ENCRYPTED KEYSTORE IDENTIFIED BY secretpass
USING 'Software'
LOCAL AUTO LOGIN KEYSTORE;
2. 创建表:
SQL> CREATE TABLE secret_table (
ID NUMBER PRIMARY KEY,
Secret VARCHAR2 (100));
3. 插入数据:
SQL> INSERT INTO secret_table VALUES (1, 'Oracle Password is not that secret)');
至此,我们就完成了Oracle启用审计功能和实施安全记录保护的全部过程。
启用审计功能和实施安全记录保护是非常重要的,可以确保数据在数据库中得到合理的保护,并且在系统出现事件之后可以向数据库管理员报告系统不当操作,从而保证数据安全。