What is the advantage of using a SQL Server application role to manage permissions vs. using standard logins/users and granting the necessary permissions to said users?
We have been using application roles which require the following scenario:
- Connect to SQL Server using a SQL Server login and password.
- Activate an application role by passing the role name and another password to sp_setapprole.
I don't see how that's any better or more secure than just granting the application role's permissions to the login/user. Both passwords must be available to the application and anyone who gains access to the login password can probably gain access to the app role password and call sp_setapprole from their own program or in SSMS. Right?
EDIT: As Ed Harper surmised, all instances of the application use the same login in my scenario.