SQL-Fehler beim Synchronisieren der Anmeldungen

26. November 2009 18:39

Hallo!

Ich beiße mir seit Stunden die Zähne bei einem Problem mit der Synchonisierung der NAV 5.0 SP1-User einer Datenbank mit SQL aus.
Ich weiß nicht was mit der Datenbank passiert ist, dass es jetzt dazu kommt, aber "darf" es halt richten.

Beim Synchronisieren kommt es also zu folgendem Fehler:
---------------------------
Microsoft Dynamics NAV
---------------------------
Der folgende SQL Server Fehler ist aufgetreten:

15138,"42000",[Microsoft][ODBC SQL Server Driver][SQL Server]Der Datenbankprinzipal besitzt ein Schema-Objekt in der Datenbank und kann nicht gelöscht werden.

SQL:
{CALL [sp_revokedbaccess](?)}

---------------------------
OK
---------------------------

Wie kann ich herausfinden wo das Problem liegt?
Ich habe die Datenbank via SQL-Sicherung auch schon auf eine Testdatenbank übertragen und dort alle Logins gelöscht, außer 1 Datenbanklogin --> selber Fehler.
Auch im SQL Management-Studio habe ich schon ein ausräumen probiert, aber bin noch auf keinen grünen Zweig gekommen.

Bin für jede Hilfe dankbar!

Gerald

Re: SQL-Fehler beim Synchronisieren der Anmeldungen

26. November 2009 20:26

Hallo Thalon,

was habt ihr denn für ein Sicherheitsmodell in der SQL-DB eingerichtet Standard oder Enhanced (Letzter Reiter bei Datenbank ändern bzw. anlegen)?
Wenn es auf Enhanced steht, kann das einige Zeit dauern, bis er mit dem Synchronisieren fertig ist. Nach Jörg Stryk braucht keiner wirklich Enhanced.

Stell das Sicherheitsmodell mal auf Standard um (Anleitung hier im Forum), und versuch es dann noch einmal

Gruß, Fiddi

Re: SQL-Fehler beim Synchronisieren der Anmeldungen

26. November 2009 20:35

Nach Jörg Stryk braucht keiner wirklich Enhanced.

Das entspricht meinen bisherigen Erfahrungen - das ist aber sicher nicht das "Maß aller Dinge" :oops:

Zum Problem:
Sieh mal nach ob ein "Schema" (Database - Security - Schemas) mit dem betroffenen User-Namen besteht. Wenn ja, diese Schema löschen. Dann dem zugehörigen "User" in den Eigenschaften ein anderes "Standardschema" zuweisen, Z.B. "dbo".
Funzt es dann?

Re: SQL-Fehler beim Synchronisieren der Anmeldungen

27. November 2009 12:55

Ich habe jetzt den Modus von Enhanced auf Standard umgestellt.
Wenn ich nun synchronisieren möchte bekomme ich nach 2 Sekunden die Meldung:
---------------------------
Microsoft Dynamics NAV
---------------------------
Der folgende ODBC-Fehler ist aufgetreten:

Fehler: [Microsoft][ODBC SQL Server Driver]Die Datenbank ist ungültig, oder es kann nicht auf sie zugegriffen werden
Status-ID: HY024

---------------------------
OK
---------------------------

Der User der die Synchronisation durchführt hat alle Datenbankrollen aktiviert.

Nach dem Schließen der Datenbank kann ich sie nun auch nicht mehr im NAV auswählen. Die ist wohl hinüber.



Also eine neue Testdatenbank hergenommen:

Zu den Schemas: In der Testdatenbank wurden alle Schemas und User gelöscht, die nicht benötigt werden (so gut wie alle) oder unbekannt sind. Auch im NAV habe ich es mit einer entsprechenden Bereinigung probiert.
Ich habe auch überprüft ob die verbliebenen User Schemas verwenden, die nicht gelistet sind o.ä. (ist nicht der Fall).
Noch vorhanden im SQL: dbo, guest, INFORMATION_SCHEMA, {mydomain}\{myuser}, NT_User, Edi, sys, Edi2
Schemas: db_accessadmin, db_backupoperator, db_datareader, db_datawriter, db_ddladmin, db_denydatareader, db_denydatawriter, db_ownder, db_securityadmin, dbo, guest, INFORMATION_SCHEMA, sys

NAV: Keine Anmeldungen mehr außer "Edi" (Datenbankanmeldung)
Wenn ich Edi2 hinzufügen möchte bekomme ich folgende Meldung:
---------------------------
Microsoft Dynamics NAV
---------------------------
Die Sicherheitssysteme von Microsoft Dynamics NAV und dem SQL Server konnten nicht erfolgreich synchronisiert werden.

Das SQL Server Login EDI2 ist auf dem Server TESTSERVER nicht vorhanden.

---------------------------
OK
---------------------------

Ich stehe gerade leider komplett an :(

Gerald

Re: SQL-Fehler beim Synchronisieren der Anmeldungen

27. November 2009 13:03

Hallo Thalon,

wg. des Synchronisierungsproblems. Du hast doch sicherlich die XP_ndo.dll im SQL-Server installiert, diese enthält zwei Funktionen, je nach Sicherheitsmodell benötigt Sie eine von beiden, im Zweifelsfall bitte auch die andere Funktion installieren.

Gruß, Fiddi

Re: SQL-Fehler beim Synchronisieren der Anmeldungen

27. November 2009 15:03

Ich habe beide erweiterten Prozeduren hinzugefügt, wenn du diese meinst?
xp_ndo_enumusersids
xp_ndo_enumusergroups

Re: SQL-Fehler beim Synchronisieren der Anmeldungen

27. November 2009 17:07

Hallo,

Handbuch hat geschrieben:Grant the public SQL Server database role execute permission for both extended
stored procedures.


Auch das ist passiert?

Gruß, Fiddi

Re: SQL-Fehler beim Synchronisieren der Anmeldungen

1. Dezember 2009 15:17

Ja, für Public und Guest

Re: SQL-Fehler beim Synchronisieren der Anmeldungen

1. Dezember 2009 15:53

Ich empfehle mal "tabula rasa" durchzuführen - also alles zurück auf Anfang ... (User in DB löschen, Login am Server löschen)
Dann:

+ Benutzer ZUERST im SQL Server als "Login/Anmeldung" erstellen
+ Keine SQL Richtliniene etc. verwenden
+ Normaler User: Serverrolle "public"; Administratoren "sysadmin"

+ DANN in der "Benutzerzuordnung" dem "Login(Anmeldung)" die DB zuweisen
+ Normaler User: Datenbankrolle "public", NAV Entwickler "db_owner"
Durch die Zuordnung wird der DB "User/Benutzer" autom. erstellt

+ DANN das entsprechende Login in NAV erstellen
+ NAV Rollen zuweisen

Das muss so klappen ...