MS SQL Server 2005-2019: A Few Things To Consider
MS SQL Server 2005-2019: A Few Things To Consider
Thank you for your interest in authenticated scanning! When you configure and use
authentication, you get a more in-depth assessment of your hosts, the most accurate results and
fewer false positives. This document provides tips and best practices for setting up MS SQL
Server authentication for MS SQL Server. For Windows, we support MS SQL Server 2005, 2008,
2012, 2014, 2016, 2017 and 2019. For Unix, we support MS SQL Server 2017 and 2019.
For Windows:
- If you are using VM, then only Windows Authentication is required for MS SQL databases on
Windows.
- If you are using PC or SCA, then MS SQL Authentication is used. You can optionally use
Windows authentication record for auto-discovery of Instance, Database, and Port.
Interested in Amazon RDS? Jump to Amazon RDS for SQL Server for setup steps.
USE [master]
GO
CREATE LOGIN [domain\QUALYS_SCAN] FROM WINDOWS WITH DEFAULT_DATABASE=[[name
of database to scan]]
GO
EXEC master..sp_addsrvrolemember @loginame = N'domain\QUALYS_SCAN', @rolename =
N'sysadmin'
GO
1b) Create a SQL Server Authentication Login for the Scan Account
This script creates a database login for the user account to be used for scanning. Please provide
a password and the name of the target database before running the script. Tip – We recommend
creating an account called QUALYS_SCAN.
USE [master]
GO
CREATE LOGIN QUALYS_SCAN WITH PASSWORD=N'[password]', DEFAULT_DATABASE=[name
of database to scan], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO
EXEC master..sp_addsrvrolemember @loginame = N'qualys_scan', @rolename = N'sysadmin'
GO
USE [master]
GO
grant SELECT on sys.all_objects to qualys_scan;
grant SELECT on sys.configurations to qualys_scan;
grant SELECT on sys.databases to qualys_scan;
grant SELECT on sys.database_permissions to qualys_scan;
grant SELECT on sys.syslogins to qualys_scan;
grant SELECT on sys.trace_events to qualys_scan;
grant SELECT on sys.traces to qualys_scan;
grant SELECT on sys.sysaltfiles to qualys_scan;
grant SELECT on sys.server_principals to qualys_scan;
Additional optional privileges are needed for certain controls, as shown below.
Did you get different results? Contact your SQL Server DBA to ensure that privileges are
set up correctly.
USE master
CREATE LOGIN QUALYS_SCAN WITH PASSWORD=N'[password]';
USE master
CREATE USER QUALYS_SCAN FOR LOGIN QUALYS_SCAN;
USE msdb
CREATE USER QUALYS_SCAN FOR LOGIN QUALYS_SCAN;
GRANT EXECUTE ON MSDB..SP_ENUM_PROXY_FOR_SUBSYSTEM TO QUALYS_SCAN;
GRANT EXECUTE ON MSDB..SP_ENUM_LOGIN_FOR_PROXY TO QUALYS_SCAN;
GRANT SELECT ON MSDB..SYSPROXIES TO QUALYS_SCAN;
GRANT SELECT ON MSDB..SYSPROXYLOGIN TO QUALYS_SCAN;