将扩展参数传递到Sql 2008连接字符串
问题描述:
我需要为支持Sql Server 2008的系统支持广泛的审计功能。由于我打算使用LINQ(没有存储过程),数据库将是一个干净的零联系人数据库。将扩展参数传递到Sql 2008连接字符串
不过,我需要pratically记录下每一个发生这种情况在数据库变更的快照。所以,我认为我应该使用触发器。但是,我需要特定用户的用户标识(而不是连接字符串用户标识)流入数据库。
在oracle中,我应该可以设置一个代理用户,并且触发器可以选择它。最后我检查了一下,Sql Server中没有代理用户的概念。
有谁知道是否有任何extender属性可用于流经我的身份验证用户名?
PS:我不介意连接池的影响(如果有的话)。
谢谢。 P
答
我通过将@@SPID与当前用户ID相关联来解决此问题。
您需要一个结构为SPID int,UserID int和具有相同参数的SP的表。如果存在,SP将删除具有SPID的记录,并插入新的一对。
在触发器中,您可以通过使用@@ SPID查询此表来检索用户ID。
的SP需要每当打开一个连接到被调用。 (你没有提到你想如何访问数据库)
我想HOST_NAME(),但我还以为是什么东西少“哈克”。我将使用host_name()。谢谢,@devio。 P. – 2010-05-07 17:36:19