sqlinsight-pro/SQL Scripts/_collectors/CustomQueryCollector.sql
Søren Eggert Lundsteen Olsen 631edc2adc
Some checks failed
deploy community / deploy (push) Successful in 15s
deploy hub / deploy (push) Successful in 19s
CI / Build og unit tests (push) Successful in 7s
CI / MSI-installer (push) Successful in 17s
CI / Integration (mcr.microsoft.com/mssql/server:2017-latest) (push) Has been cancelled
CI / Integration (mcr.microsoft.com/mssql/server:2019-latest) (push) Has been cancelled
CI / Integration (mcr.microsoft.com/mssql/server:2022-latest) (push) Has been cancelled
CI / Integration (mcr.microsoft.com/mssql/server:2025-latest) (push) Has been cancelled
Review 1.3: SQL Scripts for database discovery and the permission check
Registers 1.3's SQL in SqlScriptSources (DatabaseDiscovery: databases 2005/2000
and the Dynamics AX signature per database; PermissionCheck: login/sysadmin, the
HAS_PERMS_BY_NAME checks for 2005-2012, 2014-2019/MI and 2022+, databases without
access) and adds _collectors/DatabaseDiscovery.sql and PermissionCheck.sql with
Danish review headers. The constants are renamed *Sql and the login query moved to
PermissionCheck.WhoSql so the registry test finds them. The scripts of the
collectors that now skip unchosen databases say so (their SQL is unchanged).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 13:26:16 +02:00

42 lines
3 KiB
Transact-SQL

-- ===================================================================================================================
-- Collector: CustomQueryCollector ("custom-rules")
-- ===================================================================================================================
-- Hvad: Community-reglernes (rules/community/*.json) og lokale reglers forespørgsler: én gang i master
-- (server-regler) eller i hver læsbar brugerdatabase (database-regler).
-- Fil: src/SQLInsight.Collectors/Custom/CustomQueryCollector.cs
-- Databaser: Fra 1.3 kun de databaser, der er valgt under Servere og databaser (systemdatabaserne altid; se
-- _collectors/DatabaseDiscovery.sql). Fravalgte databaser sorteres fra i koden efter forespørgslen; SQL'en er uændret.
-- Interval: 15 min som standard (SQLInsight:CollectorIntervals:custom-rules)
-- Versioner: SQL Server 2005 og nyere (pr. regel: minimumVersion)
--
-- Rettigheder til agentens login (se db/permissions/grant-least-privilege.sql; [agent] = agentens login):
-- GRANT VIEW ANY DEFINITION TO [agent]; -- metadata; giver IKKE adgang til data
-- GRANT CONNECT ANY DATABASE TO [agent]; -- SQL Server 2014+; giver IKKE adgang til data
-- Før 2014 i stedet, i hver brugerdatabase: CREATE USER [agent] FOR LOGIN [agent];
--
-- Bruges af: COM-AX-001, COM-AX-002, COM-AX-003, COM-AX-004, COM-AX-005, COM-AX-006, COM-AX-007, COM-FT-001,
-- COM-FT-002, COM-FT-003, COM-FT-004, COM-FT-005, COM-DB-001, COM-SEC-001, COM-SEC-002, COM-CFG-001
-- Read-only: Ja: kun SELECT samt USE (skifter sessionens database), SET-sessionsindstillinger. Intet ændrer data,
-- indstillinger eller objekter.
-- Kørsel: Kør i SSMS som agentens login. Hver variant er sin egen batch (GO); en variant for en anden SQL Server-version
-- end din kan fejle - det er forventet. Agenten kører altid med sessionsindstillingerne i _collectors/InstanceProbe.sql.
-- ===================================================================================================================
-- Variant: Husk databasen, der skal skiftes tilbage til
-- Kilde: CustomQueryCollector.CurrentDatabaseSql
-- Kode: src/SQLInsight.Collectors/Db.cs : Db.CurrentDatabaseSql
SELECT DB_NAME()
GO
-- Variant: Databaserne, database-regler køres i
-- Kilde: CustomQueryCollector.DatabasesSql
-- Kode: src/SQLInsight.Collectors/Custom/CustomQueryCollector.cs : CustomQueryCollector.DatabasesSql
SELECT name FROM sys.databases WHERE database_id > 4 AND state = 0 AND source_database_id IS NULL AND HAS_DBACCESS(name) = 1 ORDER BY name
GO
-- Variant: Én regel: skift database (master for server-regler, ellers hver brugerdatabase) og kør reglens forespørgsel
-- Kilde: CustomQueryCollector.BuildRuleSql
-- Kode: src/SQLInsight.Collectors/Custom/CustomQueryCollector.cs : CustomQueryCollector.BuildRuleSql(database, query)
USE [master];
-- (reglens forespørgsel: se den enkelte COM-*.sql)
GO