我在寻找内部Web应用程序到数据库层的端到端身份验证的最佳实践。Intranet应用程序的数据库身份验证
我看到的最常见的情况是使用一个SQL帐户,其权限设置为应用程序所需的权限。此帐户由所有应用程序调用使用。然后,当人们需要通过查询工具访问数据库时,或者通过查询访问创建一个单独的组,并且人们可以访问该组。
我看到的另一个场景是使用完整的Windows身份验证端到端。因此,用户自己被添加到具有所有权限设置的组中,以便用户能够在应用程序的参数外进行更新和更改。这通常涉及到将人员保护到适当的存储过程,以便他们不直接更新表。
第一种情况似乎比较容易维护,但如果应用程序中存在安全漏洞,则整个数据库都会受到危害,这引发了担忧。
第二种情况似乎更安全,但是在数据库上的存储过程中存在大量业务逻辑的反面关注。这似乎限制了Nhibernate和LINQ等一些非常酷的技术的使用。然而,在这个时代,人们可以通过多种不同的方式使用数据,我们不会预见混搭等等,这是最好的方法。