如何获取 CLR 触发器中当前执行命令的 sql server 用户名?
我知道 SqlContext.WindowsIdentity 返回正在执行命令的当前用户(在 CLR 触发器中),但是,这仅适用于经过 Windows 身份验证的用户。 如果是 sql server 用户,如何获取用户名? 任何帮助表示赞赏。
I know that SqlContext.WindowsIdentity returns the current user that is executing the command (in a CLR trigger), however, this only works for windows authenticated users. How do I get the username if it's a sql server user instead? Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试在 SQL Server 中使用
SUSER_NAME()
函数。 这将返回当前用户。Try using
SUSER_NAME()
function in SQL server. This will return the current user.尝试使用 SYSTEM_USER。
Try using SYSTEM_USER.
您可以使用当前连接的上下文并从连接对象中获取所需的所有内容。
像这样(在 C# 中):
You can use context of the current connection and get all you need from the connection object.
Like this (in C#):