SV-82257r1_rule
V-67767
SRG-APP-000090-DB-000065
SQL4-00-011310
CAT II
10
Create a server role specifically for audit maintainers, and give it permission to maintain audits, without granting it unnecessary permissions:
USE master;
GO
CREATE SERVER ROLE SERVER_AUDIT_MAINTAINERS;
GO
GRANT ALTER ANY SERVER AUDIT TO SERVER_AUDIT_MAINTAINERS;
GO
(The role name used here is an example; other names may be used.)
Use REVOKE and/or DENY and/or ALTER SERVER ROLE ... DROP MEMBER ... statements to remove the ALTER ANY SERVER AUDIT permission from all logins.
Then, for each authorized login, run the statement:
ALTER SERVER ROLE SERVER_AUDIT_MAINTAINERS ADD MEMBER <login name>;
GO
Use REVOKE and/or DENY and/or ALTER SERVER ROLE ... DROP MEMBER ... statements to remove CONTROL SERVER, ALTER ANY DATABASE and CREATE ANY DATABASE permissions from logins that do not need them.
If SQL Server Audit is not in use, this is not a finding.
Obtain the list of approved audit maintainers from the system documentation.
Review the server roles and individual logins that have the following permissions, all of which enable the ability to create and maintain audit definitions (the views and functions provided in the supplemental fine Permissions.sql can assist in this):
ALTER ANY SERVER AUDIT
CONTROL SERVER
ALTER ANY DATABASE
CREATE ANY DATABASE
The functions and views provided in the supplemental file Permissions.sql can assist in this review. In the following, "STIG" stands for the schema where you have deployed these views and functions. To see which logins and server roles have been granted these permissions:
SELECT
*
FROM
STIG.server_permissions P
WHERE
P.[Permission] IN
(
'ALTER ANY SERVER AUDIT',
'CONTROL SERVER',
'ALTER ANY DATABASE',
'CREATE ANY DATABASE'
);
To see what logins and server roles inherit these permissions from the server roles reported by the previous query, repeat the following for each one:
SELECT * FROM STIG.members_of_server_role(<server role name>);
To see all the permissions in effect for a server principal (server role or login):
SELECT * FROM STIG.server_effective_permissions(<principal name>);
If designated personnel are not able to configure auditable events, this is a finding.
If unapproved personnel are able to configure auditable events, this is a finding.
V-67767
False
SQL4-00-011310
If SQL Server Audit is not in use, this is not a finding.
Obtain the list of approved audit maintainers from the system documentation.
Review the server roles and individual logins that have the following permissions, all of which enable the ability to create and maintain audit definitions (the views and functions provided in the supplemental fine Permissions.sql can assist in this):
ALTER ANY SERVER AUDIT
CONTROL SERVER
ALTER ANY DATABASE
CREATE ANY DATABASE
The functions and views provided in the supplemental file Permissions.sql can assist in this review. In the following, "STIG" stands for the schema where you have deployed these views and functions. To see which logins and server roles have been granted these permissions:
SELECT
*
FROM
STIG.server_permissions P
WHERE
P.[Permission] IN
(
'ALTER ANY SERVER AUDIT',
'CONTROL SERVER',
'ALTER ANY DATABASE',
'CREATE ANY DATABASE'
);
To see what logins and server roles inherit these permissions from the server roles reported by the previous query, repeat the following for each one:
SELECT * FROM STIG.members_of_server_role(<server role name>);
To see all the permissions in effect for a server principal (server role or login):
SELECT * FROM STIG.server_effective_permissions(<principal name>);
If designated personnel are not able to configure auditable events, this is a finding.
If unapproved personnel are able to configure auditable events, this is a finding.
M
2639