|
Komponente |
d.3 admin |
|---|---|
|
Version |
Current 2023.Q1, Annual 2022 |
|
Erstellt am |
|
|
Zuletzt geändert am |
An error occurredFailed to render Workflows Metadata macro on page 514392258 during export. If this problem continues, please contact our Customer Support Team for assistance. |
|
Reviewstatus |
An error occurredFailed to render Workflows Metadata macro on page 514392258 during export. If this problem continues, please contact our Customer Support Team for assistance. |
|
KB-Artikelnummer |
424182192 |
Zusammenfassung
Sie möchten in Ihrem d.3-Repository einen d.3-Benutzer löschen. Der d.3-Benutzer wird jedoch nicht gelöscht.
Im d.3 Log wird folgende Fehlermeldung angezeigt:
An object update affected more rows than it should!
Return code: 99996 (D3_SERVER_UNKNOWN_STD_EXCEPTION)
Der d.3-Benutzer hat in der Microsoft SQL Server-Datenbank keine gültige Objekt-ID. Sie müssen den d.3-Benutzer zunächst in der SQL Server-Datenbank löschen und danach in d.3 admin.
Wichtige Voraussetzungen
-
Sie haben administrativen Zugriff auf den d.3-Server mit d.3 admin und d.3 process manager.
-
Sie sind Datenbankadministrator in Microsoft SQL Server mit den Berechtigungen schreibende SQL-Anweisungen auszuführen.
-
Führen Sie vorab ein Backup der SQL Server-Datenbank aus, mindestens jedoch für die Datenbanktabelle sid_assign.
Lösung
Nachdem Sie eine Sicherung der SQL Server-Datenbank oder mindestens der Datenbanktabelle sid_assign ausgeführt haben, gehen Sie folgendermaßen vor:
-
Gehen Sie zum d.3-Server mit d.3 process manager (http://localhost:3480) und stoppen Sie die Prozesse.
-
Melden Sie sich bei der d.3-Datenbank an und stellen Sie eine Verbindung her, z.B. in Microsoft SQL Server Studio.
-
Führen Sie eine SELECT-Anweisung mit dem Benutzerkürzel des zu löschenden Benutzers aus. Standardmäßig sollte für alle Benutzer (auth_id) nach der Abfrage der Parameter object_id gleich NULL sein.
SQLSELECT * FROM sid_assign WHERE auth_id = '<user_shortname>'Alle Datensätze, die in der Abfrage unter Ergebnisse leer sind, sind fehlerhaft. Die fehlerhaften Datensätze müssen Sie löschen (farblich hervorgehoben).
Leerer Eintrag bei “object_id” für d.3-Benutzer -
Löschen Sie den fehlerhaften Benutzer aus der Datenbanktabelle mit folgender SQL-Anweisung:
SQLDELETE FROM sid_assign WHERE auth_id = '<user_shortname>' AND object_id IS NOT NULL; -
Leeren Sie anschließend die Datenbanktabelle cache_state mit einer DELETE-Anweisung. Andernfalls bleiben die veralteten Werte im d.ecs jstore-Cache vorhanden, was zu Dateninkonsistenzen führen kann:
SQLDELETE FROM cache_state -
Gehen Sie zum d.3-Server und starten Sie alle Prozesse in d.3 process manager (http://localhost:3480).
-
Löschen Sie den d.3-Benutzer in d.3 admin.