如何解决如果用户是用户分配托管标识,则确定 Azure SQL Server 中的用户名
我使用用户分配的托管标识从 Web 应用程序连接 Azure SQL Server。到目前为止,这工作正常,我们的日志记录过程会在数据库中记录此应用程序(和其他应用程序)的所有活动。
要确定当前代理用户的用户名,我通常可以在任何存储过程中使用类似
SELECT @ORIGINAL_LOGIN()
这将返回连接用户的用户名。
托管身份的用户名在我的例子中是“octservice”。但是,当“octservice”连接并记录其活动时,@ORIGINAL_LOGIN() 函数不会返回其用户名,而是从 Azure AD 返回类似 ClientID@TenantID 的内容。
我怎样才能确定用户名,就像它出现在 SSMS 中一样? ClientID@TenantID 不是该用户的 USER_ID。
解决方法
试试SELECT SYSTEM_USER()
?它是 SUSER_SNAME()
的同义词。我已经看到它在托管身份方面被引用过一两次。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。