Azure SQL 和 Web 应用程序用户身份

Azure SQL and Web Application User Identity

我正在寻找有关开发人员在进行更新时如何将登录用户的身份传递给数据库的建议。

为简单起见,假设我们正在使用简单的 ADO.NET SQLCommand 将一些行插入日志 table。该行有一个 UserId 列,需要用登录用户填充,而不是连接字符串上使用的通用 userId。

显然,SQLCommand 可以接受 "UserId" 的参数并简单地使用它。但我想知道是否有更好的选择来节省必须为每个命令手动传递它。

我研究过使用 Azure AD 提供 ADFS 以登录到 Web 应用程序,然后在数据库的连接字符串上使用此标识。这很好用,但我担心我们正在授予应用程序用户帐户直接访问数据库的权限——这可能没问题,但似乎有风险。如果恶意用户设法将 SSMS 获取到我们的数据库服务器,他们将拥有可以使用的用户名和密码。

此外,如果我们不使用 AD 来管理我们的用户帐户 - ASP.Net 例如会员资格...我们可以在这里做什么?我们可以在连接时设置它们的任何属性吗?

谢谢 大卫

查看新的 SESSION_CONTEXT() 函数,它是为这个场景添加的。

请使用T-SQL电话 sp_who 或 select suser_name() 它们显示已连接并执行 T-SQL 操作的用户的当前登录 谢谢 米雷克