Menü

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.

In anderen Fällen lässt sich EULANDA® starten, aber gewisse Funktionen - beispielsweise das Kopieren von Adressen - schlagen fehl. Hierbei wird dann obige oder nachstehende Meldung ausgegeben:

Meldung 15404
Die Informationen über Windows NT-Gruppe oder -Benutzer 'dbo' konnten nicht abgerufen werden, Fehlercode 0xffff0002.

Meldung 15404
Could not obtain information about Windows NT group\user 'dbo', error code 0xffff0002.

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()

select suser_sname(sid) 
from sys.database_principals 
where name = 'dbo'

Beide Abfragen müssen „sa“ als Ergebnis haben. Wenngleich der Fall, dass sich die Ausgaben unterscheiden seltener ist.

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.