Re: (CC) Zugriffsrechte für ODBC Abfragen

26. Februar 2013 09:41

Hallo,

ich glaube die Wette hast Du gewonnen :wink:

--> .....Das Nav.dbo.Record Link'-Objekt wurde nicht gefunden, weil es nicht vorhanden ist oder sie die entsprechende Berechtigung nicht haben.

SQL:
Set Identity_Insert "Nav"."dbo"."record Link" on

Kann man das irgenwie abändern?

Gruß

Elhamplo

Re: (CC) Zugriffsrechte für ODBC Abfragen

26. Februar 2013 10:02

Yo, das ist eine falsche Nutzung von "AutoIncrement" in NAV. Das AI Feld muss vor dem INSERT explizit mit 0 initialisiert werden (z.B. "Entry No." := 0;) dann klappts auch ohne db_owner (Hintergründe & Details lass ich jetzt mal weg :wink: )

Re: (CC) Zugriffsrechte für ODBC Abfragen

26. Februar 2013 15:33

stryk hat geschrieben:Yo, das ist eine falsche Nutzung von "AutoIncrement" in NAV. Das AI Feld muss vor dem INSERT explizit mit 0 initialisiert werden (z.B. "Entry No." := 0;) dann klappts auch ohne db_owner (Hintergründe & Details lass ich jetzt mal weg :wink: )


Das ist besonders lustig, wenn man das erste Mal darauf stößt: Bei einem selbst funktioniert es, nur beim Anwender kracht es :D

Ich glaub einen Grund gibt es sogar dbo bzw. sa zu sein: Entwickler brauchen die Berechtigung um Tabellen in NAV anzulegen, wenn ich mich nicht jetzt ganz täusche.

Re: (CC) Zugriffsrechte für ODBC Abfragen

26. Februar 2013 15:51

Es ist so (Kurzfassung):
Wenn man ein AI Feld nicht korrekt initialisiert (= 0), dann kann u.U. ein xRec Wert ungleich 0 beim INSERT übergeben werden. In dem Fall versucht die NAV Applikation das "AutoIncrement" (IDENTITY_INSERT) zur Laufzeit zu ändern - das dürfen aber nur db_owner.

NAV Entwickler müssen db_owner sein, das funzt auch ein "inkorrektes AI" - mit public Usern aber nicht mehr :twisted:

Die Lösung ist hier eben NICHT alle User auf db_owner zu setzen, sonder einfach nur diese eine Zeile Code zu ergänzen ...