我想在 SQL Server 中为我们的 Web 应用程序使用仅限 Windows 的身份验证。过去,我们总是为 Web 应用程序创建功能强大的 1 SQL 登录。在进行了一些初步测试之后,我们决定创建模拟应用程序安全角色的 Windows Active Directory 组(即管理员、经理、用户/操作员等)我们已经在 SQL Server 中创建了映射到这些组的登录名并让他们访问应用程序的数据库。此外,我们还创建了 SQL Server 数据库角色并为每个组分配了适当的角色。这很好用。我的问题围绕着对于大多数应用程序而言,公司中的每个人都应该具有对报告(以及数据)的读取权限。据我所知,我有两个选择:1)为每个应用程序创建一个只读/查看者广告组“角色”,并将每个人都放入其中。2) 使用“域\域用户”组并在 SQL 中为他们分配正确的角色。允许每个人使用仅限 Windows 的身份验证方法对特定数据库对象进行读取访问的最佳和/或最简单的方法是什么?
选项 1 是您最好的选择。
授予对 Public 的访问权限不是一个好主意。在这种情况下,用户可能会更改工作职能,而此时您不希望 Public 角色有权访问您的数据。除非您组织中的每个人都可以访问您的应用程序。
创建一个组,然后将其分配给 datareader 角色不一定是一个好主意,因为可能存在您不希望角色中的每个人都读取的数据(因此是您的“特定数据库对象”规范)。
如果您创建一个组,然后给它 SELECT/EXECUTE/etc 访问应该为您做的有问题的对象。
您始终可以向公共服务器角色授予对各种安全对象的访问权限。除非特别授予或拒绝权限,否则每个用户都会继承授予 Public 的权限。