首页 / 知识
关于sql server:NHibernate和SqlServer中的数据审核
2023-04-12 12:06:00

Data Auditing in NHibernate and SqlServer我在一个项目上使用NHibernate,我需要进行数据审核。 我在codeproject上找到了这篇文章,该文章讨论了IInterceptor接口。 您首选的审计数据方式是什么? 您是否使用数据库触发器? 您是否使用与本文讨论的内容类似的内容? 对于NHibernate 2.0,您还应该查看事件监听器。这些是IInterceptor接口的演变,我们成功地将它们用于审核。 [编辑] NH2.0发布后,请按照以下建议查看事件监听器。我的答案已经过时了。 建议使用IInterceptor以非侵入方式修改处于休眠状态的任何数据。对于无需知道您的应用程序代码的数据解密/加密,它也很有用。 数据库上的触发器将日志记录(应用程序关注点)的责任移到了DBMS层,这有效地将您的日志记录解决方案与数据库平台联系在一起。通过将审计机制封装在持久层中,您可以保持平台独立性和代码可移植性。 我在生产代码中使用拦截器,以在一些大型系统中提供审核。 我知道这是一个老问题。但是我想根据NH 2.0中的新事件系统来回答这个问题。对于侦听类功能,事件侦听器比侦听器更好。 Ayende上个月在他的博客上写了一个很好的例子。这是他博客文章的网址- ayende.com/Blog/archive/2009/04/29/nhibernate-ipreupdateeventlistener-amp-ipreinserteventlistener.aspx 我确实喜欢上面提到的Interceptor方法,并将其用于我当前正在研究的项目中。 但是,值得强调的一个明显的缺点是,这种方法只会审核通过应用程序进行的数据更改。您可能需要不时执行的任何直接数据修改(例如临时SQL脚本)(始终会发生!)将不会被审计,除非您记得同时执行审计表插入。 我更喜欢您提到的CodeProject方法。 数据库触发器的一个问题是,它别无选择,只能将Integrated Security与ActiveDirectory结合使用来访问SQL Server。这样做的原因是您的连接应该继承触发连接的用户的身份。如果您的应用程序使用命名的" sa"帐户或其他用户帐户,则"用户"字段将仅反映" sa"。 可以通过为应用程序的每个用户创建一个命名的SQL Server帐户来覆盖它,但是,例如,对于非Intranet,面向公众的Web应用程序,这是不切实际的。 作为一种完全不同的方法,您可以在存储库中使用装饰器模式。 说我有
然后,我们将拥有NHibernateRepository:
然后,我们可以建立一个审核存储库:
然后,使用IoC框架(StructureMap,Castle Windsor,NInject),您可以在不知道其余所有代码都在进行审计的情况下,全部构建它。 当然,如何审核级联集合的元素完全是另一个问题... |
最新内容
相关内容
python爬虫和数据分析有哪些第三方
python爬虫和数据分析有哪些第三方库?,培训,爬虫,和数,以上,更多,内容,以上内容为大家介绍了爬虫和数据分析有哪些第三方库,希望对大家有所python数据分析相关的技术
python数据分析相关的技术,分析,数据,培训,技术,python爬虫和数据分析有哪些第三方
python爬虫和数据分析有哪些第三方库?,培训,爬虫,和数,python如何连接mysql数据库
python如何连接mysql数据库,培训,数据,项目,一致,流程,数据库,参数,结果,接口,语句,python数据库接口支持非常多的数据库,你可以选择适合你项python定时修改数据库
python定时修改数据库,时间,服务,培训,单位,代码,标准,线程,操作,时间差,进程,1.传入执行改库操作的时间update_time,用update_time和当前时间python常见的数据类型转换函数有哪
python常见的数据类型转换函数有哪些?,培训,数据类型,函数,python组合数据类型分为哪几类?
python组合数据类型分为哪几类?,培训,数据类型,python支持哪些数据类型
python支持哪些数据类型,数字,标准,指数,培训,系统,浮点,布尔,表示,类型,个位,python基本数据类型一般分为:数字、字符串、列表、元组、字典、python怎么解析网页数据
python怎么解析网页数据,数据,培训,信息,标准,工具,网页,结构,标签,对象,以上,python网页解析器1、常见的python网页常见的python网页解析工python怎么链接数据库
python怎么链接数据库,培训,数据,一致,流程,项目,数据库,接口,参数,结果,语句,python数据库接口支持非常多的数据库,你可以选择适合你项目的python如何读入数据
python如何读入数据,培训,数据,文本,文件,内存,内容,弊端,方法,利弊,字符串,Python的文本处理是经常碰到的一个问题,Python的文本文件的内容读python可以搭配什么数据库
python可以搭配什么数据库,数据,网站,软件,培训,产品,网络,公司,环境,数据库,关系,python支持多种数据库,下面介绍一下MySQL和MongoDb。MySQL