SEa*_*986 6 security sql-server role
我一直在阅读 Microsoft SQL 服务器中的应用程序角色。应用程序角色似乎与任何其他角色一样,可以将安全对象的权限授予应用程序角色,但是,不同之处在于它必须由使用存储过程的应用程序“调用” sp_setapprole。
我可以看到使用它的唯一原因是 DBA 允许应用程序(及其开发人员)连接到数据库,而不必提供服务器登录名或数据库用户,因此开发人员无法直接连接到 SQL Server(例如通过 SSMS),即使那样,我也看不到这样做的好处,因为提供给应用程序/开发人员的帐户肯定会被授予最低要求的权限吗?
我在这里错过了什么吗?
Dan*_*man 10
应用程序角色并不能消除提供初始连接凭据的需要。在激活应用程序角色之前,必须首先使用登录名(SQL 或 Windows 帐户/组)或包含的数据库用户)成功地对服务器/数据库进行身份验证。
应用程序角色与常规数据库角色的主要区别在于:
sp_setapprole身份验证成功后使用应用程序角色密码启用sp_unsetapprole返回的 cookie未设置sp_setapprole(连接池需要)当服务帐户(具有应用程序所需的权限)用于应用程序数据库访问时,使用应用程序角色没有任何价值。
应用程序角色的一个用例是当用户使用他们自己的安全凭据(例如,通过 Windows 组成员身份进行 Windows 身份验证)从应用程序连接到 SQL Server 但没有应用程序所需的权限时。在此方案中激活应用程序角色允许审核单个用户活动(例如使用ORIGINAL_LOGIN()),而无需授予超出 的权限CONNECT,尽管用户可以被授予应用程序外部需要的权限,例如报告工具所需的权限。这将允许对报告进行只读访问,同时限制通过应用程序的写入。