设计SQL Server里审计数据表
2008-08-30 09:58:44 来源:WEB开发网通用的查找表
实现审计目的的另一种方法就是利用通用表来存储所需的数据,结合一个查找表来识别审计数据的原来所在列。这种方法设计的优点在于每一个基础表可以使用统一的设计,然后扩展查找表来添加新列,这样制作的报表也可以保持一致性。另外,这个设计还可以进一步扩展,用于单个数据库、实例、应用程序或者整个数据环境,只需要添加一些额外的列和所需的基础设施而已。
下面是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
- ››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表' (数...
更多精彩
赞助商链接