SQL Server 中的 DBMS_SESSION.set_client_identifier 等效项
我想知道是否有一种方法可以像 Oracle 中那样使用 DBMS_SESSION.set_client_identifier 设置客户端标识符上下文并使用函数获取值。
我正在尝试跟踪数据更改,包括谁/哪个用户名进行了更改。 我计划创建捕获旧值、新值和用户名的触发器。
与服务器的连接正在使用池连接,因此使用连接到数据库的用户名并不是答案。
有人有主意吗?
I'd like to know if there's a way to set client identifier context like in Oracle by using DBMS_SESSION.set_client_identifier
and grab the value using a function.
I am trying to track data changes including who/which username made the changes.
My plan to create Triggers that capture the OLD value, NEW value, and the username.
The connection to the server is using pooled connection, so using the username that connects to the DB is not the answer.
Anyone has an idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您无法使用连接本身的属性(因为它是池化的),则必须在调用
connection.Open()
后设置一些附加信息。但如果我正确地阅读了你的问题,那对你来说没问题。因此,您可以使用 SQL Server
SET CONTEXT_INFO
,它允许您在会话/连接上下文中存储最多 128 个任意字节,之后您可以使用CONTEXT_INFO()
进行查询> 功能。请参阅>此处<。If you cannot use properties from the connection itself (since it's pooled) you will have to set some additional info after your call to
connection.Open()
. But if I read your question correctly, that's OK for you.So what you can use is SQL Servers
SET CONTEXT_INFO
, which lets you store up to 128 arbitrary bytes in the session/connection context and which you can query thereafter with theCONTEXT_INFO()
function. See the description >here<.