Clarify BizTalk SQL authorization setup

This commit is contained in:
2026-07-29 15:40:44 +02:00
parent 0001d7b861
commit e3d7f6a780
4 changed files with 107 additions and 0 deletions
+46
View File
@@ -19,6 +19,18 @@ Keine DCOM-, Firewall- oder WMI-Namespace-Rechte erweitern. Keinen direkten
SQL-Login, keine manuellen BizTalk-Datenbankrollen und kein sysadmin fuer das
Maschinenkonto anlegen.
WICHTIG ZUR NEUEN VERSION
=========================
Die neue EXE repariert keine Berechtigungen. Sie erkennt den eingebetteten
SQL-Loginfehler korrekt, zeigt BEW\AV23AGPWBIO1$ und klassifiziert die
Folgediagnose als Berechtigungsproblem. Ohne die nachfolgende Freigabe bleiben
die betroffenen Checks auch mit der neuen Version UNKNOWN.
Die alte Version kann nach korrekter Freigabe grundsaetzlich funktionieren.
Empfohlen ist die neue Version zusammen mit der Gruppenfreigabe, weil sie
Fehlerursache, Konto und Massnahme eindeutig anzeigt.
FREIGABE
========
@@ -82,6 +94,40 @@ Der separate Event-Log-Service zeigte im Screenshot zwei Fehler und sechs
Warnungen. Diese Ereignisse bleiben nach der Berechtigungsfreigabe fachlich zu
pruefen.
WENN ES DANACH WEITERHIN SCHEITERT
==================================
Normalerweise wurde die konfigurierte BizTalk-Operator-Gruppe bereits durch die
BizTalk-Konfiguration am SQL Server eingerichtet. Das Maschinenkonto erbt ueber
seine AD-Gruppenmitgliedschaft die Rolle BTS_OPERATORS und benoetigt keinen
eigenen SQL-Login.
Bleibt "Login failed" trotz bestaetigter Mitgliedschaft, AD-Replikation und
Token-Erneuerung bestehen, prueft die SQL-Administration read-only:
SELECT name, type_desc
FROM sys.server_principals
WHERE name = N'BEW\<EXAKTE_BIZTALK_OPERATOR_GRUPPE>';
Danach jeweils in BizTalkMgmtDb und BizTalkMsgBoxDb:
SELECT
member_principal.name AS member_name,
role_principal.name AS role_name
FROM sys.database_role_members AS drm
JOIN sys.database_principals AS role_principal
ON role_principal.principal_id = drm.role_principal_id
JOIN sys.database_principals AS member_principal
ON member_principal.principal_id = drm.member_principal_id
WHERE member_principal.name =
N'BEW\<EXAKTE_BIZTALK_OPERATOR_GRUPPE>'
AND role_principal.name = N'BTS_OPERATORS';
Fehlt die Abbildung, gleichen BizTalk- und SQL-Administration sie mit der
BizTalk-Konfiguration ab und reparieren sie fuer die konfigurierte Gruppe.
Keinen Einzel-Login oder Sonderrollen fuer BEW\AV23AGPWBIO1$ als Umgehung
anlegen.
SICHERHEIT
==========
+40
View File
@@ -97,6 +97,17 @@ Auf `AV23AGPWBIO1` meldet der Provider `COMException HRESULT=0x80131904` und als
Die vielen `UNKNOWN`-Services sind Folgewirkungen desselben Fehlers. WMI-Namespace-ACL, DCOM und Firewall muessen fuer diesen Befund nicht erweitert werden. Die zwei Fehler und sechs Warnungen in `BizTalk Event Log` sind davon unabhaengig und separat auszuwerten.
### Was die neue Version aendert - und was nicht
Die neue Version verbessert Diagnose und Betriebsfuehrung:
- `0x80131904` mit `Login failed for user` wird als `Wmi/Permission` erkannt.
- Das wirklich abgewiesene Konto wird aus der Providerfehlermeldung uebernommen.
- Die unvollstaendige SQL-Zielermittlung wird als `Sql/Permission` statt als allgemeine Konfigurationstoerung ausgegeben.
- Nach erfolgreichem Zugriff wird die konfigurierte Gruppe als `operator_group=` sichtbar.
Die EXE kann und darf jedoch keine AD-Gruppenmitgliedschaft, SQL-Logins oder Datenbankrollen anlegen. Die alte Version kann nach korrekter Berechtigungsfreigabe grundsaetzlich arbeiten; die neue Version ohne Freigabe bleibt weiterhin `UNKNOWN`. Der Sollzustand ist daher: neue Version plus korrekte Gruppenberechtigung.
### Verbindlicher Funktionstest
Der direkte Start des Wrappers in einer administrativen Eingabeaufforderung ist nur ein Vorabtest, weil er mit dem angemeldeten Benutzer laeuft. Fuer die Berechtigungspruefung ist die Ausgabe unter dem echten Checkmk-Kontext massgeblich:
@@ -144,6 +155,35 @@ Alternativ koennen die Checkmk-Kollegen in der Agent Bakery die Regeln `Set exec
Die BizTalk-Operator-Rolle ist fuer grundlegende Administration und Monitoring vorgesehen. Sie kann Zustands- und Message-Flow-Informationen lesen, darf aber keine Konfiguration oder Nachrichteninhalte einsehen. Das entspricht dem lesenden Funktionsumfang dieses Plugins. Keine direkten SQL-Rollen in den BizTalk-Datenbanken hinzufuegen; die von BizTalk konfigurierte Windows-Gruppe soll die Berechtigungen vermitteln.
### Wenn die Gruppenmitgliedschaft allein nicht genuegt
Normalerweise hat die BizTalk-Konfiguration die konfigurierte Domain-Gruppe bereits auf dem SQL Server abgebildet und ihren Datenbankbenutzern die Rolle `BTS_OPERATORS` zugeordnet. Das Maschinenkonto benoetigt dann keinen eigenen SQL-Login, sondern erbt den Zugriff ueber die AD-Gruppe.
Bleibt der Loginfehler nach AD-Replikation und Token-Erneuerung bestehen, prueft die SQL-Administration zunaechst read-only den Gruppenlogin:
```sql
SELECT name, type_desc
FROM sys.server_principals
WHERE name = N'BEW\<EXAKTE_BIZTALK_OPERATOR_GRUPPE>';
```
Anschliessend wird in `BizTalkMgmtDb` und `BizTalkMsgBoxDb` die Rollenzuordnung geprueft:
```sql
SELECT
member_principal.name AS member_name,
role_principal.name AS role_name
FROM sys.database_role_members AS drm
JOIN sys.database_principals AS role_principal
ON role_principal.principal_id = drm.role_principal_id
JOIN sys.database_principals AS member_principal
ON member_principal.principal_id = drm.member_principal_id
WHERE member_principal.name = N'BEW\<EXAKTE_BIZTALK_OPERATOR_GRUPPE>'
AND role_principal.name = N'BTS_OPERATORS';
```
Liefert die Abfrage keinen passenden Eintrag, wird die fehlende Gruppenabbildung mit der BizTalk-Konfiguration verglichen und durch BizTalk-/SQL-Administration fuer die konfigurierte Gruppe repariert. Kein Einzel-Login fuer `BEW\AV23AGPWBIO1$`, keine ad-hoc Rollenvergabe und kein `sysadmin` als Umgehung.
Entscheidungsmatrix:
| Beobachtung | Bewertung und Massnahme |