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

设计SQL Server里审计数据表

 2008-08-30 09:58:44 来源:WEB开发网   
核心提示: 通用的查找表实现审计目的的另一种方法就是利用通用表来存储所需的数据,结合一个查找表来识别审计数据的原来所在列,设计SQL Server里审计数据表(3),这种方法设计的优点在于每一个基础表可以使用统一的设计,然后扩展查找表来添加新列,这个设计还可以进一步扩展,用于单个数据库、实例、应用程序

通用的查找表

实现审计目的的另一种方法就是利用通用表来存储所需的数据,结合一个查找表来识别审计数据的原来所在列。这种方法设计的优点在于每一个基础表可以使用统一的设计,然后扩展查找表来添加新列,这样制作的报表也可以保持一致性。另外,这个设计还可以进一步扩展,用于单个数据库、实例、应用程序或者整个数据环境,只需要添加一些额外的列和所需的基础设施而已。

下面是SQL Server 2005 AdventureWorks数据库中以单个表支持审计功能的例子:

  USE[AdventureWorks]
  GO
  CREATETABLE[HumanResources].[EmployeePayHistory_Audit_Generic](
  [AuditID][int]IDENTITY(1,1)NOTNULL,
  [AuditColumnID][int]NOTNULL,
  [BaseTableUniqueKey_Value][int]NOTNULL,
  [AuditColumnID_Value][varchar](500),
  [ModifiedDate][datetime]NOTNULLCONSTRAINT[DF_EmployeePayHistory_Audit_Generic_ModifiedDate]DEFAULT(getdate()),
  [ModifiedBy][varchar](100)NOTNULLCONSTRAINT[DF_EmployeePayHistory_Audit_Generic_ModifiedBy]DEFAULT(SUSER_SNAME())
  CONSTRAINT[PK_EmployeePayHistory_Audit_Generic_AuditID]PRIMARYKEYCLUSTERED
  (
  [AuditID]ASC
  )WITH(PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF)ON[PRIMARY]
  )ON[PRIMARY]
  GO
  CREATETABLE[HumanResources].[EmployeePayHistory_AuditLookup_Generic](
  [AuditColumnID][int]IDENTITY(1,1)NOTNULL,
  [AuditColumnName][varchar](150)NOTNULL,
  [ActiveFlag][bit]NOTNULL
  CONSTRAINT[PK_EmployeePayHistory_AuditLookup_Generic_AuditID]PRIMARYKEYCLUSTERED
  (
  [AuditColumnID]ASC
  )WITH(PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF)ON[PRIMARY]
  )ON[PRIMARY]
  GO
  ALTERTABLE[HumanResources].[EmployeePayHistory_Audit_Generic]ADDCONSTRAINT
  [FK_EmployeePayHistory_Audit_Generic_EmployeePayHistory_AuditLookup_Generic]FOREIGNKEY
  (
  AuditColumnID
  )REFERENCES[HumanResources].[EmployeePayHistory_AuditLookup_Generic]
  (
  AuditColumnID
  )
  GO
  INSERTINTO[HumanResources].[EmployeePayHistory_AuditLookup_Generic]([AuditColumnName],[ActiveFlag])
  VALUES('RateChangeDate',1)
  GO
  INSERTINTO[HumanResources].[EmployeePayHistory_AuditLookup_Generic]([AuditColumnName],[ActiveFlag])
  VALUES('Rate',1)
  GO
  SELECT*
  FROM[HumanResources].[EmployeePayHistory_AuditLookup_Generic]
  GO

上一页  1 2 3 4  下一页

Tags:设计 SQL Server

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