WEB开发网
开发学院数据库MSSQL Server 设计SQL Server里审计数据表 阅读

设计SQL Server里审计数据表

 2008-08-30 09:58:44 来源:WEB开发网   
核心提示: 8.数据一致性要求考虑这些数据的使用方式,确定是否所有的审计数据需要以相同的格式存储,设计SQL Server里审计数据表(2),9.审计数据存储位置与基础数据一起存储,即存储在同一个数据库里或者是存储在不同磁盘系统的独立文件组里 存储在实例的某个特定数据库里,只是审计表增加了一些列来管理

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

上一页  1 2 3 4  下一页

Tags:设计 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接