设计SQL Server里审计数据表
2008-08-30 09:58:44 来源:WEB开发网8.数据一致性要求
考虑这些数据的使用方式,确定是否所有的审计数据需要以相同的格式存储。
9.审计数据存储位置
与基础数据一起存储,即存储在同一个数据库里或者是存储在不同磁盘系统的独立文件组里
存储在实例的某个特定数据库里,即不同的数据库里
存储在集中化的SQL Server数据库里,即远程实例中
方案设计的选择
就像刚才所说的,一些关键技术设计决定是关于数据要如何写入审计表里、审计数据存储在哪里、是否可以使用统一的方法来存储数据用于制作报表等等。对于这些问题,不同的答案需要开发不同的方案,我们下面可以简单介绍几种不同的方案,看看有没有适用于你的情况的:
复制基本表
这个方法是比较传统的审计技巧,针对每一个需要审计的基本表都创建一个审计表。基本表和审计表的设计很相似,只是审计表增加了一些列来管理历史数据(即AuditID列作为识别列,ModifiedBy列用于记录谁对记录做出过修改,等等)。我们下面用SQL Server 2005数据库中的一个AdventureWorks表([HumanResources].[EmployeePayHistory])作为例子:
USE[AdventureWorks]
GO
CREATETABLE[HumanResources].[EmployeePayHistory_Audit](
[AuditID][int]IDENTITY(1,1)NOTNULL,
[EmployeeID][int]NOTNULL,
[RateChangeDate][datetime]NOTNULL,
[Rate][money]NOTNULL,
[PayFrequency][tinyint]NOTNULL,
[ModifiedDate][datetime]NOTNULLCONSTRAINT[DF_EmployeePayHistory_Audit_ModifiedDate]DEFAULT(getdate()),
[ModifiedBy][varchar](100)NOTNULLCONSTRAINT[DF_EmployeePayHistory_Audit_ModifiedBy]DEFAULT(SUSER_SNAME())
CONSTRAINT[PK_EmployeePayHistory_Audit_AuditID]PRIMARYKEYCLUSTERED
(
[AuditID]ASC
)WITH(PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
GO
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接