View auf andere SQL-DB auf gleichem Server ohne DB_Owner

8. November 2012 14:50

Hallo Zusammen,

ich habe folgendes Problem und komme leider nicht mehr weiter mit meinem "Windows-SQL-NAV"-Latein...

NAV 2009R2, RTC
In der NAV-DB ist eine Tabelle X als LinkedObject mit der entsprechenden View X (Ziel) in der NAV-SQL-DB vorhanden. Die View X geht auf eine andere Tabelle Y (Quelle) in einer SQL-DB auf dem gleichen Server.
In beiden Datenbanken ist eine Windows-Anmeldung z eingetragen. Der User z hat in NAV Leserechte auf die Tabelle X. Die Windows-Anmeldung ist auf dem anderen Server der public-Rolle zugeordnet. Diese Public-Rolle ist mit der Eigenschaft "Auswählen" auch der Quelltabelle y zugeordnet. AUch auf in der NAV-SQL-DB ist die public-Rolle mit der Eigenschaft "Auswählen" der View zugeordnet.

Nun kann per RTC (wohl aber auch per classic Client) nicht auf die Page zugegriffen werden, die zur Tabelle X erstellt wurde. Der RTC stürzt ab; mit der Fehlermeldung "Benutzer-ID und das Kennwort sind ungültig. ... [85132501]". Anscheinend reicht der SQL-Server die Anmeldung nicht bis in die andere Datenbank weiter.

Um das Problem zu lösen habe ich folgendes versucht: Lt. anderer google-Einträge...

- guest-Benutzer in der Quell-SQL-DB hinzugefügt
- Sicherheitsmodell der NAV-DB von einfach auf erweitert umgestellt, alle User synchronisiert (das beides schien auch eine Weile zu funktionieren, plötzlich aber nicht mehr...)

Macht man nun den User in der NAV-SQL-DB zum DB-Owner, also Berechtigungen des Users entsprechend einstellen, dann klappt alles. Leider ist diese Möglichkeit seitens des Kunden "natürlich" untersagt. Es müsste also irgendwie ohne die zusätzlichen Rechte DB-Owner gehen, kann mir da jemand helfen? Hatte jemand schon ein ähnliches Problem?

Vielen Dank für´s Lesen und evtl. Antworten...

Re: View auf andere SQL-DB auf gleichem Server ohne DB_Owner

8. November 2012 15:16

Weißt Du überhaupt wie die Rechteverwaltung von NAV im SQL Server funktioniert mit SetAppRole etc?

Geh mal in der Quelltabelle auf Properties -> Permissions. Sind die User dort mit select grant Rechten ausgestattet?

Public reicht in der NAV DB, da die Rechteverwaltung ja aus NAV auf SQL "übertragen" wird. Dazu zählt aber nicht die Quelltabelle der View.

Re: View auf andere SQL-DB auf gleichem Server ohne DB_Owner

8. November 2012 15:24

Hi,

nein, dass SetAppRole sagt mir nichts.

In der Quelltabelle ist die Public-Role für das "Auswählen" mit 'Erteilen' und 'Mit Erteilung' zugewiesen. Neben der Public habe ich das auch schon direkt mit dem User probiert. Leider kein Erfolg.

Re: View auf andere SQL-DB auf gleichem Server ohne DB_Owner

10. November 2012 19:41

Schon mal das probiert ...
Code:
GRANT SELECT ON [View X] TO PUBLIC

... ?!