【发布时间】:2017-06-14 08:08:20
【问题描述】:
我正在寻找有关开发人员在进行更新时如何将登录用户的身份传递给数据库的建议。
为了简单起见,假设我们正在使用简单的 ADO.NET SQLCommand 将一些行插入到日志表中。该行有一个 UserId 列,该列需要填充登录用户,而不是连接字符串上使用的通用 userId。
显然,SQLCommand 可以接受“UserId”参数并简单地使用它。但我想知道是否有更好的选择可以省去为每个命令手动传递的情况。
我研究过使用 Azure AD 提供 ADFS 以登录 Web 应用程序,然后在与数据库的连接字符串上使用此标识。这很好用,但我担心我们正在让应用程序用户帐户直接访问数据库 - 这可能没问题,但似乎有风险。如果恶意用户通过某种方式设法将 SSMS 获取到我们的数据库服务器,他们将拥有可以使用的用户名和密码。
此外,如果我们不使用 AD 来管理我们的用户帐户 - 例如 ASP.Net Membership……我们可以在这里做什么?我们可以在连接时设置它们的任何属性吗?
谢谢 大卫
【问题讨论】:
标签: asp.net-mvc webforms ado.net azure-sql-database ado