如果用户是用户分配托管标识,则确定 Azure SQL Server 中的用户名

时间:2021-02-17 10:38:12

标签: sql-server azure azure-managed-identity

我使用用户分配的托管标识从 Web 应用程序连接 Azure SQL Server。到目前为止,这工作正常,我们的日志记录过程会在数据库中记录此应用程序(和其他应用程序)的所有活动。

要确定当前代理用户的用户名,我通常可以在任何存储过程中使用类似

SELECT @ORIGINAL_LOGIN()

这将返回连接用户的用户名。

托管身份的用户名在我的例子中是“octservice”。但是,当“octservice”连接并记录其活动时,@ORIGINAL_LOGIN() 函数不会返回其用户名,而是从 Azure AD 返回类似 ClientID@TenantID 的内容。

我怎样才能确定用户名,就像它出现在 SSMS 中一样? ClientID@TenantID 不是该用户的 USER_ID。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

试试SELECT SYSTEM_USER()?它是 SUSER_SNAME() 的同义词。我已经看到它在托管身份方面被引用过一两次。