Sicht aus Navision kann nur vom DBO aufgerufen werden...

20. März 2007 00:23

Hallo,

habe eine Sicht welche von Navision aus heraus aufgerufen wird (linked Object).

Wenn ich mit meiner Windows-Anmeldung auf das Navision zugreife wird die Tabelle aus der externen Datenbank angezeigt.

Lege ich jedoch einen Datenbankbenutzer an und logge mich mit diesem ein klappt es nicht, dann kommt die Fehlermeldung das Bentzername und Kennwort evtl nicht stimmen.

Hat jemand dieses Problem schonmal gehabt? Selbst wenn ich dem Datenbankbenutzer SQL-Seitig volle Rechte gebe funktioniert es nicht.

20. März 2007 08:32

Hallo!

Kein Lizenzproblem? Benutzer-Synchronisation erfolgreich?

Um welche Tabellen handelt es sich denn? Dieses Verhalten tritt i.d.R. nur bei sog. "Linked Tables" auf, also bei Tabellen die sich auf einen SQL View beziehen. In diesem Fall muss man den Rollen "public" und "guest" das Recht "SELECT" für diese Views zuweisen (das Verfahren ist dabei ähnlich ie bei der Erstellung der "Extended Stored Procedures" xp_ndo_enumusersids, etc. - siehe "Installation & System Management (SQL)").

Ich hoffe, daß hilft Dir weiter!

20. März 2007 10:05

wo ist der SQLServer installiert, auf dem Navision liegt?
liegt die externe Datenbank auf dem gleichen Server?
Welche Rolle hat Dein Windowsbenutzer im SQL-Server?
Ist dein Datenbankbenutzer auch über eine Serverrolle oder direkt als benutzer der externen Datenbank eingerichtet?

20. März 2007 12:38

Hallo,

erstmal vielen Dank ihr beiden.

Ich habe eine Datenbank names "Test" und eine "Adressdatenbank".

Innerhalbt der Datenbank "Test" gibt es eine Sicht am SQL Server, diese Sicht greift auf 2 Tabellen zu der Datenbank "Adressdatenbank".

Die Sicht wird über Linked Object in der Datenbank "Test" angezeigt.

Der SQLServer wird über VPN angesprochen, alsovon ausserhalb per DAtenbankbenutzer. die externe "Adressdatenbank" liegt aufden gleichen SQL-Server. MeinAccount läuft unter dem kontext des "dbo" da geht natürlich alles.

Ich habe nun einem Einzelbenutzer DBOWNER Rechte auf beiden Datenbanken gegeben, dann funktioniert es. Aber das kannes auch nicht sein. kann ich das über ne rolle machen?

In der Sicht ist definiert dass public "select" hat und in der Adressdatenbank habe ich "public" auch select Rechte auf die entsprechende Tabelle gegeben. Aber das geht leider nicht,geht wie gesagt nur mit db_owner rechten aufbeide db´s...

Besonders toll ist das mit dem db_owner aber nicht... ist auch keine richtige Lösung. Habt ihr noch nen Tipp für mich???

20. März 2007 15:12

Du solltest mal versuchen den Datenbankbenutzer nur mit der Rolle Public in die Adressdatenbank einzutragen. Die Rollen werden nämlich explizit den in der Datenbank eingetragenen Benutzern zugeordnet.
Nur der Rolle Rechte zu geben hilft nicht, wenn die Datenbank den Benutzer gar nicht kennt, der ist dann nämlich nicht Mitglied der Rolle auf dieser Datenbank.