it-swarm.com.de

Kann das Objekt "XXX" nicht finden, da es nicht existiert oder Sie keine Berechtigung haben

Beim Aufrufen einer gespeicherten Prozedur wird folgende Fehlermeldung angezeigt:

Das Objekt "XXX" kann nicht gefunden werden, da es nicht existiert oder Sie keine Berechtigung haben.

Ich habe die Datenbank überprüft und das SP hat die richtigen Berechtigungen, aber ich bekomme immer noch den Fehler.

Irgendwelche Vorschläge?

11
Twiggz

Ok, hier ist was passiert. Vor dem Ende des SP gab es ein Sonderzeichen, also war es unvollständig und dennoch irgendwie gültig.

Also konnte ich SP sehen und die Berechtigungen sehen, aber ich konnte es nicht ausführen. Um das Problem zu lösen, musste ich den Text aus SQL Management Studio kopieren und in Notepad einfügen, das Sonderzeichen entfernen, das Sonderzeichen kopieren und in SQL Management Studio einfügen und das Änderungsskript ausführen.

Sehr seltsam, wie der Charakter dorthin gekommen ist!

4
Twiggz

Ich entdeckte, dass ich das Wort "GO" nach "END" in meiner gespeicherten Prozedur aufgegeben hatte. Durch das Ändern des Proc und das Hinzufügen von GO wurde dieses Problem für mich behoben.

10
Shane

Ähnlich wie die markierte Antwort: Die letzte Zeile meiner gespeicherten Prozedur war eine Zeile, die der gespeicherten Prozedur die Erlaubnis gab, als der entsprechende Benutzer ausgeführt zu werden - wahrscheinlich dort hinzugefügt, als ich ein Skript generierte.

Das Entfernen dieses (oder vielleicht auch eines versteckten Charakters) hat es geschafft, es zu beheben.

"XXX" war der Name der gespeicherten Prozedur, die ich aufgerufen hatte, und zwar erfolgreich (die gewünschte Änderung wurde vorgenommen), was jedoch zu diesem Fehler führte.

2
gaijintendo

Ich treffe auch diese Ausgabe. In meinem Fall habe ich die Ausführungserlaubnis unmittelbar nach dem Erstellen der gespeicherten Prozedur erteilt. Und es gibt kein 'GO' zwischen den beiden Aussagen. Ich habe GO hinzugefügt, und es funktioniert.

2
raz0r89

Das Konto, das Sie beim Aufrufen der gespeicherten Prozedur verwenden, darf nicht mit dem Konto übereinstimmen, das Sie zur Überprüfung verwenden. Stellen Sie sicher, dass das Konto, mit dem Sie den Sproc ausführen, Zugriff auf das Objekt hat.

1
Andrew Hare

Wählen Sie im Microsoft SQL-Server das Objekt im Objekt-Explorer aus, mit dem Sie arbeiten möchten, klicken Sie mit der rechten Maustaste darauf und führen Sie dann mit "Script [object] as" das Skript aus, das Sie zum erfolgreichen Ausführen einer Operation benötigen, ohne diesen Fehler zu erhalten

0
Chris Halcrow

Mit dem 'GO' wurde das Problem auch für mich behoben. Das hat mich wahnsinnig gemacht, nachdem ich mehrere Male abgeworfen und die Berechtigungen für Benutzer und Schema überprüft hatte.

0
SRA

Auch nach dem Hinzufügen von "GO" wurde das Problem nicht behoben. Dann wurde die Anweisung UPDATE STATISTICS [Table_name] entfernt. Dann wurde mein Problem behoben.

0
dgcharitha

Verwenden Sie immer das Präfix dbo. (oder ein anderes Schema) sowohl beim Erstellen als auch beim Zugriff auf Objekte.

Ich habe kürzlich zu diesem Thema geschrieben:

0
Aaron Bertrand

Sowie andere Antworten zu Schema/Sicherheit usw.:

  • hast du irgendwo ein DENY?
  • case sensitive Objektnamen und Verwendung eines "falschen" Namens?
  • falscher Datenbankkontext? zB OtherDB.dbo.Myproc
0
gbn