逻辑安全

逻辑安全,第1张

从逻辑上考虑,一个安全的数据库应当允许用户只访问对其授权的数据。数据库通过不同安全级别的权限管理,对用户的权利进行限制,保证系统的安全。同时为了权限管理的方便,系统允许设定不同的角色,通过角色管理,实现权限的授予与回收。从逻辑上保证数据安全主要采用以下方法:

1.数据库的存取控制

系统中的数据种类繁多,而整个系统又分为四个相对独立的应用子系统,这些子系统通过数据库进行数据交换与存储,每个子系统都从数据库中获取数据,因此,系统设计时首先按子系统进行数据存取权限的划分,将子系统作为用户级对待,为每个子系统设定数据访问权限,通过定义不同的用户连接使每个子系统在连接到数据库时就划分了对数据库表的访问权限。当子系统级用户使用ORACLE数据库时执行用户鉴别。每个用户在建立时有一个口令,用户口令在建立对数据库连接时使用,以防止对数据库非授权的使用。用户的口令以密码的格式存储在数据库用户信息表中。在此基础上各应用子系统内部再根据访问要求划分多个用户级别,通过建立用户权限表限制各级用户对数据的增、删、浏览等 *** 作权限。

2.对用户使用资源进行限制

对用户可用的各种系统资源总量的限制是用户安全的一部分。通过显式地设置资源限制,安全管理员可防止用户无控制地消耗宝贵的系统资源。资源限制由环境文件进行管理。一个环境文件是命名的一组赋给用户的资源限制。

主要考虑限制下列几种类型的系统资源的使用:

(1)为了防止无控制地使用CPU时间,可限制每次ORACLE调用的CPU时间和在一次会话期间ORACLE调用所使用的CPU的时间

(2)为了防止过多的I/O,应限制每次调用和每次会话的逻辑数据块读的数目

(3)对每个用户的并行会话数进行限制

(4)每次会话可消逝时间的限制,如果一次会话期间超过可消逝时间的限制,当前事务被回滚,会话被删除,该会话的资源被释放。

3.进行审计记录

审计是对选定的用户动作的监控和记录,主要用于审查可疑的活动和数据库连接。本系统审计项有以下几项:

(1)对数据被非授权用户所删除进行审计

(2)对数据库的所有表的成功地或不成功地删除进行审计

(3)监视和收集关于指定数据库活动的数据。

ORACLE支持三种审计类型:语句审计、特权审计和对象审计。

审计记录将存放在SYS模式的AUD$表中,内容包含有审计的 *** 作、用户执行的 *** 作、 *** 作的日期和时间等信息。

4.用户口令表加密

对数据库中的敏感数据项(如用户口令表等)进行加密,确保存放信息的机密性。凡经本系统加密存放的信息,应具有很强的机密性,可以抵抗集团攻击。

5.数据备份与恢复

在数据库系统中,计算机软硬件故障、应用软件故障、 *** 作员的失误 *** 作、甚至病毒、人为破坏等总是不可避免的,另外数据本身在应用过程中不断地被更新变动以及出于调整的必要,需要在不同服务器、甚至不同数据库管理系统之间进行空间数据、属性数据的移植和转换,因此数据备份恢复是数据管理最重要的工作环节之一,也是保障数据安全的重要方式(朱春,2005)。

本系统中的空间数据通过ArcSDE存储在Oracle数据库中,数据的备份更多地依赖于关系型数据库的备份和恢复技术,当然也不能缺少ArcSDE所提供的备份工具。按照备份的方式和对象,ArcSDE中空间数据的备份和恢复可分为如下两类:指定空间数据对象的备份恢复,和整体空间数据库的备份恢复。

1.指定空间数据对象的备份和恢复

该种方式主要用于备份指定空间数据对象,如某个图层和要素类、其中某些满足制定条件的记录、甚至特定的版本。实现这种备份方式的方法主要是利用ArcSDE所提供的管理工具:sdeexport和sdeimport命令,其中sdeexport用于将空间数据从ArcSDE Server上备份为单独的数据文件,而sdeimport用于将经由sdeexport备份的数据文件恢复到ArcSDEServer中。

2.整体空间数据库的备份和恢复

ArcSDE空间数据库的整体备份和恢复,实质上很大程度上是其所在的数据库或者数据库对象的备份和恢复问题。当然完整的ArcSDE数据备份还包括dbtune.sde,giomer.defs,dbinit.sde和servicse.sde等文件。

数据库的备份和恢复大体上分为静态转储和动态转储两种类型。静态转储是在系统中无事务处理时进行的转储 *** 作,因而这种方式得到一定是一个数据一致性的副本。静态数据转储的优点是 *** 作简单、保证数据一致性,但其缺点是必须等到用户事务结束才能进行,而新的事务必须等待转储结束后才能进行,因而会降低数据库的可用性。动态转储是指转储 *** 作与用户事务并发进行,转储期间允许数据库进行存取和修改 *** 作,它不必等待所有运行的事务结束,也不会影响新事务的运行,但是无法保证副本中的数据正确、有效、完整,因此在动态转储期间,往往会建立日志文件,后备文件加上日志文件就可以把数据库恢复到正确的状态。

数据备份策略是基于数据恢复的需要而制订的,备份的频率和范围依赖于应用和业务的要求。使用哪种备份方案或计划最好没有一个固定的样式,应视具体情况而定,要重点考虑的是可用性、可接受的停工时间和可接受的数据损失。

在实际的Oracle备份系统中,应集成使用物理备份和逻辑备份,对备份计划要进行不断的测试,确保它们没有错误,以保证数据库能从各种故障中及时有效地恢复,把企业的损失降低到最小。

本系统数据库备份策略设计如下:

(1)每月第一天进行一次数据库全库备份

(2)周日0时进行一次全数据库的0级热备份

(3)周一至周六每天进行一次1级累积增量热备份。

1、什么是审计

审计(Audit)用于监视用户所执行的数据库 *** 作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图 dba_audit_trail查看)中。默认情况下审计是没有开启的。

不管你是否打开数据库的审计功能,以下这些 *** 作系统会强制记录:用管理员权限连接Instance;启动数据库;关闭数据库。

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参数指定的文件中。

Audit_trail:

None:是默认值,不做审计;

DB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;

DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;

OS:将audit trail 记录在 *** 作系统文件中,文件名由audit_file_dest参数指定;

XML:10g里新增的。

注:这两个参数是static参数,需要重新启动数据库才能生效。

3、审计级别

当开启审计功能后,可在三个级别对数据库进行审计:Statement(语句)、Privilege(权限)、object(对象)。

Statement:

按语句来审计,比如audit table 会审计数据库中所有的create table,drop table,truncate table语句,alter session by cmy会审计cmy用户所有的数据库连接。

Privilege:

按权限来审计,当用户使用了该权限则被审计,如执行grant select any table to a,当执行了audit select any table语句后,当用户a 访问了用户b的表时(如select * from b.t)会用到select any table权限,故会被审计。注意用户是自己表的所有者,所以用户访问自己的表不会被审计。

Object:

按对象审计,只审计on关键字指定对象的相关 *** 作,如aduit alter,delete,drop,insert on cmy.t by scott这里会对cmy用户的t表进行审计,但同时使用了by子句,所以只会对scott用户发起的 *** 作进行审计。注意Oracle没有提供对schema中所有对象的审计功能,只能一个一个对象审计,对于后面创建的对象,Oracle则提供on default子句来实现自动审计,比如执行audit drop on default by access后,对于随后创建的对象的drop *** 作都会审计。但这个default会对之后创建的所有数据库对象有效,似乎没办法指定只对某个用户创建的对象有效,想比 trigger可以对schema的DDL进行“审计”,这个功能稍显不足。

在oracle11g中,数据库的审计功能是默认开启的(这和oracle10g的不一样,10g默认是关闭的),

oracle11gr2的官方文档上写的是错的,当上说default是none,而且是审计到db级别的,这样就会

往aud$表里记录统计信息。

1.如果审计不是必须的,可以关掉审计功能;

sql>

show

parameter

audit_trail

name

type

value

------------------------------------

-----------

------------------------------

audit_trail

string

db

sql>

alter

system

set

audit_trail=none

scope=spfile

sql>

shut

immediate

sql>startup

2.删除已有的审计信息

可以直接truncate表aud$,

truncate

table

sys.aud$

3.或者将aud$表移到另外一个表空间下,以减少system表空间的压力和被撑爆的风险。

附:11g中有关audit_trail参数的设置说明:

audit_trail

property

description

parameter

type

string

syntax

audit_trail

=

{

none

|

os

|

db

[,

extended]

|

xml

[,

extended]

}

default

value

none

modifiable

no

basic

no

audit_trail

enables

or

disables

database

auditing.

values:

none

disables

standard

auditing.

this

value

is

the

default

if

the

audit_trail

parameter

was

not

set

in

the

initialization

parameter

file

or

if

you

created

the

database

using

a

method

other

than

database

configuration

assistant.

if

you

created

the

database

using

database

configuration

assistant,

then

the

default

is

db.

os

directs

all

audit

records

to

an

operating

system

file.

oracle

recommends

that

you

use

the

os

setting,

particularly

if

you

are

using

an

ultra-secure

database

configuration.

db

directs

audit

records

to

the

database

audit

trail

(the

sys.aud$

table),

except

for

records

that

are

always

written

to

the

operating

system

audit

trail.

use

this

setting

for

a

general

database

for

manageability.

if

the

database

was

started

in

read-only

mode

with

audit_trail

set

to

db,

then

oracle

database

internally

sets

audit_trail

to

os.

check

the

alert

log

for

details.

db,

extended

performs

all

actions

of

audit_trail=db,

and

also

populates

the

sql

bind

and

sql

text

clob-type

columns

of

the

sys.aud$

table,

when

available.

these

two

columns

are

populated

only

when

this

parameter

is

specified.

if

the

database

was

started

in

read-only

mode

with

audit_trail

set

to

db,

extended,

then

oracle

database

internally

sets

audit_trail

to

os.

check

the

alert

log

for

details.

xml

writes

to

the

operating

system

audit

record

file

in

xml

format.

records

all

elements

of

the

auditrecord

node

except

sql_text

and

sql_bind

to

the

operating

system

xml

audit

file.

xml,

extended

performs

all

actions

of

audit_trail=xml,

and

populates

the

sql

bind

and

sql

text

clob-type

columns

of

the

sys.aud$

table,

wherever

possible.

these

columns

are

populated

only

when

this

parameter

is

specified.

you

can

use

the

sql

audit

statement

to

set

auditing

options

regardless

of

the

setting

of

this

parameter.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10802512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存