SQL Server Fehler - Select Berechtigung verweigert

17. August 2007 10:11

Hallo Comunity,

nach einem Upgrade von NAV 4.0 SP1 auf SP3 kann sich ein User ohne die SuperUser Rolle nicht mehr an der Datenbank anmelden.

Das NAV 4.0 SP1 lief auf einem SBS 2003 R2 mitt SQL Server Option. Der Server wurde neuinstalliert und es wurde direkt NAV 4.0 SP3 installiert. Die Datenbank wurde anschließend über die Wiederherstellungsfunktion in NAV wiederhergestellt.

Anschließend wurden die User wieder neu im NAV eingetragen. Der Login funktioniert jetzt nur noch wenn der User die SUPER-Rolle im NAV bekommt.

User ohne SUPER-Rolle bekommen die Fehlermeldung im Anhang.

Jemand eine Idee?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

17. August 2007 10:18

Hi!

Willkommen bei MSDynamics.de!

Wurden die Logins auch alle synchronisiert?

Gruß,
Jörg

17. August 2007 11:04

Ja, wurde alles synchronisiert.

17. August 2007 11:43

Kann es sein, dass die SQL-DB geändert wurde auf SQL 2005?

17. August 2007 12:29

Ich denke schon, kanns aber nicht zu 100% sagen, da ich die Migration nicht durchgeführt habe.

Was hätte das denn für Auswirkungen bzw. was kann ich jetzt tun um den Fehler zu beheben?

19. August 2007 14:01

Noch jemand eine Idee?

19. August 2007 18:59

Versuch's mal damit im Management Studio/Query Analyzer:

Code:
use [Nav_Extruder]
go
grant select on [Windows Access Control] to [public]
go

20. August 2007 08:01

Überprüfe doch auch mal bitte, ob der User, der sich nicht an der Datenbank anmelden kann, überhaupt eine Rolle zugewiesen bekommen hat, die auf die Tabelle Windows Access Control Berechtigungen hat. Leseberechtigungen sollten hier reichen.

MFG

20. August 2007 09:52

Beim SQL-2005 hatte man doch ein Extra-DLL benötigt, damit den NICHT-Admins die Berechtigung auf Navision überhaupt möglich ist. Ich weiss leider nicht mehr genau, was für eines dass das war, aber danach (nach 1x Sync in NAV) hat's bei uns ohne Probleme geklappt.

20. August 2007 13:25

Ich vermute, die DLL von der Du sprichst ist die xp_ndo.dll.
Diese wird in den Extended Stored Procedures xp_ndo_enumusersids und xp_ndo_enumusergroups verwendet.
Mehr zu diesem Thema findest die auch in diesem Thread:

http://www.msdynamics.de/viewtopic.php?t=3795

Die Rechte für den Zugriff auf "Windows Access Controls" . und alle anderen Tabellen - werden über Anwendungsrollen ($ndo$ar... oder $ndo$shadow) unter Nutzung dieser Prozeduren - und damit der DLL - vergeben.