2010-11-05 14 views
10

Das ist ziemlich verwirrend. Ich erhalte diese Fehlermeldung, wenn ich versuche zu (oder sogar Ansicht), um die Datenbankdiagramme Knoten unter einem Datenbank-Knoten in SQL Server Management Studio Express (SQL Server 2008) hinzuzufügen:Datenbank-Diagramm-Support-Objekte können nicht installiert werden

Database Diagramm Unterstützungsobjekte installiert werden können nicht weil diese Datenbank keinen gültigen Besitzer hat. Um fortzufahren, verwenden Sie zuerst die Seite "Dateien" des Dialogfelds "Datenbankeigenschaften" oder die Anweisung ALTER AUTHORIZATION, um den Datenbankbesitzer auf eine gültige Anmeldung zu setzen, und fügen Sie dann die Unterstützungsobjekte für das Datenbankdiagramm hinzu.

Ok, gut. Das Problem ist laut Management Studio, dass mein Login der Besitzer der DB ist. Ich verwende die Windows-Authentifizierung, wenn ich mich bei Management Studio anmelde, und wenn ich auf die Seite "Dateien" des Dialogfelds "Datenbankeigenschaften" gehe, ist meine Anmeldung der Eigentümer.

Also die nächst ich heraus, ok, vielleicht bin ich kein Mitglied der richtigen Serverrolle tatsächlich der Eigentümer zu sein, aber ist mein Login Mitglied der Sysadmin Serverrolle, die nach this MDSN page ist eine Voraussetzung für den Besitz einer Datenbank.

So endlich habe ich einige googeln, und ich sehe people telling me zu versuchen, eine Anweisung wie folgt ausführen:

EXEC sp_dbcmptlevel 'yourDB', '90'; 
go 
ALTER AUTHORIZATION ON DATABASE::yourDB TO "yourLogin" 
go 
use [yourDB] 
go 
EXECUTE AS USER = N'dbo' REVERT 
go 

Mein Problem hier ist, dass ich nicht wirklich verstehen, was dieser Code tut, und kein Betrag Das Ausprobieren verschiedener Benutzernamen oder Datenbanknamen mit der obigen Anweisung (die anscheinend erfolgreich ausgeführt wird) scheint mein Problem zu beheben.

Kann jemand an etwas denken, das ich vermisse?

+0

Dies gehört wirklich zu ServerFault.com. Sie werden hier wahrscheinlich gute Antworten erhalten, aber dieses Problem liegt eher im Bereich eines DBA als im Bereich eines Entwicklers. – David

+0

@ David, das macht Sinn. Ich habe gewählt, um es nach SF zu verschieben. –

+0

mögliches Duplikat von [Datenbankdiagramm-Support-Objekte können nicht installiert werden ... kein gültiger Eigentümer] (http://stackoverflow.com/questions/2043382/database-diagram-support-objects-cannot-be-installed-no-valid- Besitzer) –

Antwort

20

Haben Sie diesen Satz von Schritten versucht, es könnte Ihr Problem lösen:

in dem SQL Server Management Studio tun die folgende:

  1. Rechts auf Ihre Datenbank klicken, wählen Sie Eigenschaften
  2. Gehen Sie zur Optionen-Seite
  3. Wählen Sie im Drop-down auf der rechten Seite mit der Bezeichnung "Compatibility Level" "SQL Server 2005 (90)"
  4. Gehen Sie zur Seite Dateien
  5. Geben Sie "sa" in das Textfeld des Besitzers ein.
  6. Hit OK

Unter der Annahme, das funktioniert und Sie können DB-Diagramme hinzufügen, können Sie dann den Besitzer zu Ihrem Windows-Benutzernamen ändern zurück.

+0

Nun, "sa" funktioniert. Ich kann DB-Diagramme über diesen Benutzernamen hinzufügen. Aber sobald ich zu meinem Windows-Benutzernamen zurückwechsle, habe ich das gleiche alte Problem. Warum funktioniert "sa"? Außerdem, warum sind Datenbankdiagramme so schwer zu bekommen, um mit ihnen arbeiten zu können? :-) –

+0

Sobald es mit sa arbeitet, setze dein Windows-Konto zurück als den Besitzer und versuche dann Diagramme unter diesem Konto hinzuzufügen. Ich habe das Gefühl, dass bei der Installation des SQL Servers sa als DBA eingerichtet wurde. Wenn Sie jetzt das Windows-Konto als DBA hinzufügen, während Sie mit den sA-Anmeldeinformationen angemeldet sind, sollten Sie in der Lage sein, zum Windows-Konto zurückzukehren und die erforderlichen Berechtigungen zu haben. –

+1

Hmm, wie richte ich mein Windows-Konto als DBA ein? Das ist der Teil, der meiner Meinung nach fehlt. –

0

Dies wird funktionieren;

ALTER AUTHORIZATION ON DATABASE :: ihredb TO NT AUTHORITY \ SYSTEM

Aber das ist nur für temporäre .. Lösung, aus irgendeinem Grund, wenn Sie DB wiederherstellen müssen dann das Problem vorhanden sein wird ..

1

Versuchen Sie es einfach.

Alter AUTHORIZATION ON DATABASE::YourDbName TO [sa]; 
0

Nun, für eine Weile habe ich einige Dinge versucht und nichts hat funktioniert. Danach habe ich den Fehler sorgfältig gelesen und festgestellt, dass im Fehler nur eine Lösung vorgeschlagen wurde. Ich muss es nur sorgfältig lesen.

Im Folgenden sind die Schritte, die ich diese Arbeit zu machen tat:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa 
GO 

ODER

  • Ihre Datenbank auswählen> Rechtsklick> Eigenschaften wählen
  • Wählen Sie Datei in der linken Seite der Seite
  • Wählen Sie im Feld OWNER die Schaltfläche mit drei Punkten (...) darin
  • Wählen Sie nun den Benutzer 'sa' oder NT AUTHORITY \ SYSTEM und klicken Sie auf OK.
Verwandte Themen