3.10 Ensure the public role in the msdb database is not granted access to SQL Agent proxies

Information

The public database role contains every user in the msdb database. SQL Agent proxies define a security context in which a job step can run.

Rationale:

Granting access to SQL Agent proxies for the public role would allow all users to utilize the proxy which may have high privileges. This would likely break the principle of least privileges.

Solution

Ensure the required security principals are explicitly granted access to the proxy (use sp_grant_login_to_proxy).

Revoke access to the <proxyname> from the public role.

USE [msdb]
GO
EXEC dbo.sp_revoke_login_from_proxy @name = N'public', @proxy_name = N'<proxyname>';
GO

Impact:

Before revoking the public role from the proxy, ensure that alternative logins or appropriate user-defined database roles have been added with equivalent permissions. Otherwise, SQL Agent job steps dependent upon this access will fail.

Default Value:

By default, the msdb public database role does not have access to any proxy.

References:

https://support.microsoft.com/en-us/help/2160741/best-practices-in-configuring-sql-server-agent-proxy-account

See Also

https://workbench.cisecurity.org/files/2834

Item Details

Category: ACCESS CONTROL

References: 800-53|AC-3, CSCv6|14.4, CSCv7|14.6

Plugin: MS_SQLDB

Control ID: 780b67e657a97f21294f2ddcbcc52279bee2833b485b04a68fea8aef72635a40