controls::check expiration option is set to on for all sql authenticated logins within the sysadmin role
Applies the same password expiration policy used in Windows to passwords used inside SQL Server.
Ensuring SQL logins comply with the secure password policy applied by the Windows Server Benchmark will ensure the passwords for SQL logins with sysadmin privileges are changed on a frequent basis to help prevent compromise via a brute force attack. CONTROL SERVER is an equivalent permission to sysadmin and logins with that permission should also be required to have expiring passwords.
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:
- Microsoft SQL Server Database 2014 CIS V1.5.0 - paragraph 4.2
- Microsoft SQL Server Database 2016 CIS V1.3.0 - paragraph 4.2
- Microsoft SQL Server Database 2017 CIS V1.2.0 - paragraph 4.2
- Microsoft SQL Server Database 2019 CIS V1.2.0 - paragraph 4.2
To deliberately skip this control (e.g. meaning don’t use Puppet to enforce this setting), we provide you with three ways:
mssql_secured::controls::check_expiration_option_is_set_to_on_for_all_sql_authenticated_logins_within_the_sysadmin_role: skip to your hiera data. This will skip this control for ALL databases.
mssql_secured::controls::check_expiration_option_is_set_to_on_for_all_sql_authenticated_logins_within_the_sysadmin_role::dbname: skip to your hiera data. This will skip this control for specified database only.
3) Add an entry with the content
check_expiration_option_is_set_to_on_for_all_sql_authenticated_logins_within_the_sysadmin_role 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:
In this example, the string DB is the database to apply the control to.
Back to overview of controls::check_expiration_option_is_set_to_on_for_all_sql_authenticated_logins_within_the_sysadmin_role