Clarify BizTalk SQL authorization setup
This commit is contained in:
@@ -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
|
||||
==========
|
||||
|
||||
|
||||
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user