SQL Server 中的 DBMS_SESSION.set_client_identifier 等效项

发布于 2024-09-17 19:05:24 字数 205 浏览 9 评论 0原文

我想知道是否有一种方法可以像 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤凫 2024-09-24 19:05:24

如果您无法使用连接本身的属性(因为它是池化的),则必须在调用 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 the CONTEXT_INFO() function. See the description >here<.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文