[ { // Contributed as an example of a server-scoped community rule. "id": "COM-SEC-001", "title": "Login'et sa er aktivt", "severity": "Medium", "query": "SELECT name AS [login], CASE WHEN is_policy_checked = 1 THEN 'ja' ELSE 'nej' END AS [password_policy] FROM sys.sql_logins WHERE principal_id = 1 AND is_disabled = 0", "subject": "login: sa", "findingTitle": "Det indbyggede login '{login}' er aktivt", "explanation": "sa er det login, angribere prøver først, fordi navnet er kendt, og det har fulde rettigheder. Password-politik håndhæves: {password_policy}.", "recommendation": "Deaktivér sa (ALTER LOGIN [sa] DISABLE) og brug navngivne logins, helst Windows-logins. Er sa i brug af en applikation, så giv applikationen sit eget login med de rettigheder, den behøver.", "references": [ { "title": "Choose an authentication mode (sa)", "url": "https://learn.microsoft.com/sql/relational-databases/security/choose-an-authentication-mode" } ], "author": "SQLInsight Pro" }, { "id": "COM-SEC-002", "minimumVersion": "10.0", "title": "Database ejes af et login, der ikke findes", "severity": "Low", "query": "SELECT d.name AS [database], CONVERT(varchar(100), d.owner_sid, 1) AS [owner_sid] FROM sys.databases d LEFT JOIN sys.server_principals p ON p.sid = d.owner_sid WHERE p.sid IS NULL AND d.database_id > 4", "subject": "database: {database}", "findingTitle": "Databasen {database} ejes af et login, der ikke længere findes", "explanation": "Ejeren er typisk en medarbejder, som er stoppet, eller en database, der er gendannet fra en anden server. Det giver fejl i fx EXECUTE AS OWNER, cross-database ownership chaining og nogle jobs.", "recommendation": "Sæt en ejer, der findes, fx et dedikeret, deaktiveret login: ALTER AUTHORIZATION ON DATABASE::[{database}] TO [sa-ejer]; Undgå at bruge personlige logins som ejer.", "author": "SQLInsight Pro" }, { "id": "COM-CFG-001", "title": "Default trace er slået fra", "severity": "Low", "query": "SELECT CAST(value_in_use AS int) AS [value_in_use] FROM sys.configurations WHERE name = 'default trace enabled' AND value_in_use = 0", "subject": "configuration: default trace enabled", "findingTitle": "Default trace er slået fra", "explanation": "Default trace er en let sporing, der registrerer bl.a. autogrowth, ændringer af objekter og logins. Uden den er det svært at efterforske, hvad der skete, efter en hændelse.", "recommendation": "Slå den til igen: EXEC sp_configure 'default trace enabled', 1; RECONFIGURE; Den koster næsten intet.", "author": "SQLInsight Pro" } ]