Fachhändler suchen Referenzkunden

Home Informationen PDF-Dokumente EULANDA Handbücher Schulungen Bücherecke Download Mitteilung Inhaltsverzeichnis Impressum

Glossar

Passwortzugang zum Anwender-Forum

Update Fernwartung Update...

Fernwartungssystem laden (nach Aufforderung)

Datenbankbesitzer ist ein Windows-Benutzer

Zurück | Ebene zurück

EULANDA lässt sich nicht starten - auch nicht als Administrator. Beim Starten - ggf. auch an anderer Stelle im Programm - erscheint eine der folgenden oder eine ähnliche Meldungen:

Meldung 15517
Die Ausführung als Datenbankprinzipal ist nicht möglich,
weil der Prinzipal "dbo" nicht vorhanden ist, für diesen Typ
von Prinzipal kein Identitätswechsel möglich ist, oder Sie nicht
die erforderliche Berechtigung haben.

Message 15517
Cannot execute as the database principal because the
principal "dbo" does not exist, this type of principal cannot
be impersonated, or you do not have permission.

Mögliche Ursache

Der Besitzer der Datenbank ist nicht der fest hinterlegte SQL Administrator "sa", sondern ein Windows-Anmeldename. Das ist beispielsweise der Fall, wenn beim Anlegen der Datenbank kein Anmeldenamen eingegeben wurde. In diesem Fall wird der jeweils angemeldete Windows-Benutzer als Datenbankbesitzer hinterlegt.

Überprüfen Sie den aktuell hinterlegten Datenbankbesitzer

Den aktuell hinterlegten Datenbankbesitzer finden Sie im SQL Management Studio heraus, wenn Sie mit der rechten Maustaste auf die Datenbank klicken und Eigenschaften auswählen.

Alternativ können den Besitzer auch über nachfolgenden SQL-Befehl ermitteln. Diesen können Sie beispielsweise im EULANDA-SQL-Designer ausführen:

select suser_sname(owner_sid) 
from master.sys.databases 
where database_id = db_id()

Lösung

Ändern Sie den Datenbankbesitzer in "sa" um.

Hierzu muss nachfolgender SQL-Befehl ausgeführt werden. Führen Sie vor der Änderung unbedingt eine Datensicherung Ihres kompletten Systems durch.

sp_changedbowner @loginame = 'sa'

Technischer Hintergrund

Einige serverseiten Prozeduren (stored procedures) sind mit der EXECUTE-AS-Klausel angelegt worden - etwa wie im folgenden Beispiel:

ALTER PROC [dbo].[ProzedurName]
with execute as owner
AS
SET NOCOUNT ON
(...)

Aus Sicherheitsgründen kann jedoch kein Identitätswechsel zu einem Windows-Anmeldenamen erfolgen.