SQL Server 应用程序角色与常规登录名和用户

mar*_*ltx 3 sql-server security application-role

使用 SQL Server 应用程序角色管理权限与使用标准登录名/用户并向所述用户授予必要权限相比有什么优势?

我们一直在使用需要以下场景的应用程序角色:

  1. 使用 SQL Server 登录名和密码连接到 SQL Server。
  2. 通过将角色名称和另一个密码传递给 sp_setapprole 来激活应用程序角色。

我不认为这比仅将应用程序角色的权限授予登录名/用户更好或更安全。应用程序必须可以使用这两个密码,并且任何获得登录密码访问权限的人都可以访问应用程序角色密码并从他们自己的程序或在 SSMS 中调用 sp_setapprole。对?

编辑:正如 Ed Harper 推测的那样,应用程序的所有实例在我的场景中都使用相同的登录名。

gbn*_*gbn 5

我从未使用过应用程序角色 ( CREATE APPLICATION ROLE)。
我真的看不出他们的重点

我使用了数据库角色并将用户添加为成员

CREATE ROLE WebUsers AUTHORIZATION dbo;
ALTER ROLE WebUsers ADD MEMBER Tom;
ALTER ROLE WebUsers ADD MEMBER Dick;
ALTER ROLE WebUsers ADD MEMBER Harry;

CREATE ROLE WebAdmins AUTHORIZATION dbo;
ALTER ROLE WebAdmins ADD MEMBER Tom;
Run Code Online (Sandbox Code Playgroud)

角色拥有权限,而不是用户

GRANT EXEC TO WebAdmins;

GRANT EXEC On SCHEMA::WebCode TO WebAdmins;
Run Code Online (Sandbox Code Playgroud)