Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 35 additions & 2 deletions sp_CheckSecurity.sql
Original file line number Diff line number Diff line change
Expand Up @@ -162,15 +162,16 @@ DECLARE
, @ComputerNamePhysicalNetBIOS NVARCHAR(128)
, @ServerZeroName SYSNAME
, @InstanceName NVARCHAR(128)
, @Edition NVARCHAR(128);
, @Edition NVARCHAR(128)
, @DatabaseName NVARCHAR(128);

IF OBJECT_ID('tempdb..#Results') IS NOT NULL
DROP TABLE #Results;

CREATE TABLE #Results (
VulnerabilityLevel TINYINT
, Vulnerability VARCHAR(50)
, Issue VARCHAR(50)
, Issue VARCHAR(100)
, DatabaseName NVARCHAR(255)
, Details NVARCHAR(4000)
, ActionStep NVARCHAR(1000)
Expand Down Expand Up @@ -718,6 +719,38 @@ FROM sys.certificates c
INNER JOIN sys.dm_database_encryption_keys d
ON c.thumbprint = d.encryptor_thumbprint;


/* check DMK encryption algorithm */
DECLARE db_cursor CURSOR FOR
SELECT name
FROM sys.databases
WHERE state_desc = 'ONLINE' AND database_id <> 2;
OPEN db_cursor;
FETCH NEXT FROM db_cursor INTO @DatabaseName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = N'
USE [' + @DatabaseName + '];

INSERT INTO #Results
SELECT DISTINCT
3
, ''Potential - review recommended''
, ''Database Master Key uses legacy encryption algorithm''
, DB_NAME()
, ''The Database Master Key ['' + name + ''] used for encryption in '' + DB_NAME() + '' uses the encryption algorithm '' + algorithm_desc COLLATE DATABASE_DEFAULT + ''.''
, ''The Database Master Key should be regenerated to use the more secure AES_256 algorithm.''
, ''https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-master-key-transact-sql?view=sql-server-ver16''
FROM sys.symmetric_keys
WHERE algorithm_desc <> ''AES_256''
AND symmetric_key_id = 101;
';
EXEC sp_executesql @SQL;
FETCH NEXT FROM db_cursor INTO @DatabaseName;
END
CLOSE db_cursor;
DEALLOCATE db_cursor;


/* check for database backup certificate backup */
IF @SQLVersionMajor >= 12 BEGIN
Expand Down