This setting will record failed authentication attempts for SQL Server logins to the SQL Server Errorlog. This is the default setting for SQL Server.

Historically, this setting has been available in all versions and editions of SQL Server. Prior to the availability of SQL Server Audit, this was the only provided mechanism for capturing logins (successful or failed.

Capturing failed logins provides key information that can be used to detect\confirm password guessing attacks. Capturing successful login attempts can be used to confirm server access during forensic investigations, but using this audit level setting to also capture successful logins creates excessive noise in the SQL Server Errorlog which can hamper a DBA trying to troubleshoot problems. Elsewhere in this benchmark, we recommend using the newer lightweight SQL Server Audit feature to capture both successful and failed logins.

Excelent Compliance Solution.

Puppet is an excellent solution to ensure your databases are CIS or STIG compliant. Now you’re looking at information about only one compliance control, but managing total compliance isn’t hard either!

If you you like he prospect of easy way into continuous compliancy with minimal fuss and bother, we suggest taking a look at our solution as your go-to option. Plus, our team can help you get up and running so that you can focus on other areas of your business. What are you waiting for? Get started today!


This control is used in the following benchmarks:


To deliberately skip this control (e.g. meaning don’t use Puppet to enforce this setting), we provide you with three ways:

1) Add mssql_secured::controls::login_auditing_is_set_to_failed_logins: skip to your hiera data. This will skip this control for ALL databases.
2) Add mssql_secured::controls::login_auditing_is_set_to_failed_logins::dbname: skip to your hiera data. This will skip this control for specified database only.
3) Add an entry with the content login_auditing_is_set_to_failed_logins to the array value mssql_secured::skip_list in your hiera data.


Attribute Name Short Description
title The database to apply the control to.


The database to apply the control to.

All controls need an database to apply the control to. Here is a simple example:

mssql_secured::controls::control_name {'MSSQLSERVER':}

In this example, the string DB is the database to apply the control to.

Back to overview of controls::login_auditing_is_set_to_failed_logins