2009-04-18 11 views
5

Ich verwende SQL Management Studio 2008 Express als grafische Schnittstelle zu meiner lokalen SQL Server 2008 Express-Instanz, die ich lokal nur als Test- und Entwicklungsschnittstelle für meine Webprojekte verwende.Wie erhalten Sie "Administratorrechte" in SQL Server Management Studio?

Ich habe in letzter Zeit mehr Vertrauen in die SQL-Programmierung und begann, einige kompliziertere SQL-Sachen zu verwenden - mein neuestes Forschungsgebiet ist Auslöser. Zu meiner großen Überraschung scheint ich jedoch keine Administratorrechte auf meiner Serverinstanz zu haben, was bedeutet, dass ich keine einfachen Dinge wie das Debuggen oder Ändern von Zugriffsrechten tun kann.

Wenn ich versuche, das Debuggen zu starten, erhalte ich eine Meldung über die verweigerte Erlaubnis, und ich habe es auch gesehen, wenn ich versuche, Berechtigungsregeln für verschiedene Datenbanken zu verwalten. Ich vermute, dass dies etwas mit einer Option zu tun hat, die ich gewählt habe, als ich den Server installiert habe, aber da ich bereits mehrere Datenbanken eingerichtet und mit Daten gefüllt habe, möchte ich das Ganze nicht deinstallieren und neu installieren.

Gibt es eine Möglichkeit zu ändern, welches Benutzerkonto der Hauptadministrator der Serverinstanz ist? Wenn nicht, gibt es eine andere Möglichkeit, um Berechtigungen zu erhalten, um beispielsweise meine Auslöser zu debuggen?

Antwort

5

Melden Sie sich bei Ihrem Computer als lokales Administratorkonto an. Dies sollte standardmäßig eine Sysadmin-Rolle in MSSQL sein.

Mithilfe von SSMS können Sie eine Verbindung zu Ihrer MSSQL-Instanz mithilfe der integrierten Authentifizierung herstellen. Sie sind jetzt ein Systemadministrator. Als Sysadmin, können Sie jetzt add your normal user account to the sysadmin role:

EXEC sp_addsrvrolemember @loginame = 'PC_OR_DOMAIN\loginname', @rolename = 'sysadmin' 

Wenn Sie SSPI verwenden (auch bekannt als integrierte Authentifizierung, auch bekannt als nicht einen anderen Benutzernamen und Passwort ein, wenn Sie SSMS starten), dann benutzen Sie einfach Ihre Windows-Anmeldung als loginame. Wenn Sie die Sql-Server-Authentifizierung (auch Benutzername und Passwort genannt) verwenden, verwenden Sie den Benutzernamen als Login-Name. Wenn Sie einen anderen Login-Namen verwenden, wird auch ein Account erstellt.

Es gibt sicherlich einen Weg, es innerhalb der GUI zu tun - aber ich habe es nicht praktisch ATM, um Ihnen zu sagen, wie. Ich denke, es ist unter Sicherheit -> Logins -> Eigenschaften und einige Kontrollkästchen für die verschiedenen Serverrollen.

Edit: Enabling the local admin account on Vista Auch wenn Sie sind ein lokaler Administrator (Benutzerkonto unter lokalen Administratorgruppe aufgeführt wird), dann - by default - Sie sind ein Systemadministrator. Es lohnt sich möglicherweise, die Mitglieder der sysadmin-Rolle (SQL) und der lokalen Admins-Gruppe (Vista) doppelt zu überprüfen.

Edit2: Stellt sich heraus, SQL 2008 does not add BUILTIN\Administators mehr.In diesem Fall müssen Sie überprüfen, was Sie tat hinzufügen. Dies sollte über den Knoten Logins verfügbar sein. Es gibt eine Notiz, dass Sie locked out von MSSQL Admin sein können, wenn Sie keine Systemadministratoranmeldung auswählen. Wenn das der Fall ist, würde ich neu installieren. Sie können Ihre Datenbanken speichern, indem Sie MSSQL anhalten und die * .MDF- und * .LDF-Dateien kopieren. Kopieren Sie sie nach der Neuinstallation zurück und verwenden Sie sp_attach_db, um sie wieder anzubringen.

+0

Wie melde ich mich als lokaler Administrator an? Ich betreibe Windows Vista, und das einzige Konto, das ich kenne, ist mein reguläres Benutzerkonto (AASLOEG \ Tomas, da der Name meines Computers AASLOEG ist ...). Ich habe Rechte, um Sachen als admin laufen zu lassen, aber das Laufen von SSMS als admin tut nicht den Trick. Ich habe versucht zu tun, was diese SQL-Anweisung über die GUI tun sollte, aber mir wurde bisher die Erlaubnis verweigert ... –

+0

Danke für die Links in Ihren Änderungen - obwohl sie mein Problem nicht gelöst haben, habe ich ein paar andere nützliche Dinge gelernt . Ich beendete das Verschieben der DB-Dateien aus dem Mssql-Verzeichnis, Neuinstallation und stellen Sie sicher, dass sowohl die lokale Admin-Gruppe als auch mein eigenes Benutzerkonto zur sysadmin-Rolle hinzugefügt wurden. Es war eine Plage, aber es funktioniert jetzt. Vielen Dank! –

+0

FYI, das hat mein Problem gelöst. –

0

SQL Server-Konfigurationsmanager.

Damit können Sie das Instanzkonto festlegen.

Ich denke jedoch, dass Sie möglicherweise den Datenbankbesitzer zu dem Benutzer ändern möchten, mit dem Sie eine Verbindung zur Datenbank herstellen. Wenn Sie SSPI verwenden, ist dies Ihr eingeloggter Benutzer, oder wenn Sie die SQL-Authentifizierung verwenden, wird der Benutzer die Verbindung innerhalb Ihrer Verbindungszeichenfolge herstellen.

Zusätzlich:

Wenn Sie unter Windows XP debuggen oder höher, und Sie sind nicht der Administrator (lokal), dann müssen Sie auf diesem System in die „Debugging Users“ Gruppe platziert werden. Andernfalls ist der Zugriff auf den Speicher oder das Hinzufügen eines Debuggers zu einem Prozess, den Sie nicht besitzen, ein großes Nein.

+0

Danke für die Antwort! Ich habe zwei weitere Fragen: 1) Wenn ich das Instanzkonto in mein eigenes Windows-Benutzerkonto ändere, wird ASP.NET dann weiterhin der Zugriff gewährt, den es zum Testen meiner Websites benötigt? 2) Wie ändere ich den Datenbankbesitzer, um ich selbst zu sein (das ist tatsächlich etwas, was ich tun möchte)? Wenn ich es versucht habe, habe ich die Meldung "Nachricht verweigert" erhalten. A Catch 22 ... –

+0

Ja, vorausgesetzt, der ASP.Net-Anwendungspool stellt eine Verbindung als Ihr Benutzer her. Wenn Sie ASP.Net über den Debugger ausführen, wird diese Instanz als Ihr Benutzer ausgeführt. In IIS wird dieser Benutzer vom "Anwendungspool" festgelegt, der Ihre Site ausführt. Sie können ein benutzerdefiniertes Profil mit Ihren Benutzeranmeldeinformationen erstellen und Ihre Website so einrichten, dass sie als dieser Benutzer ausgeführt wird. Das Problem besteht jedoch darin, dass Sie immer noch nicht den gewünschten Zugriff auf Ihre Datenbank erhalten, da dies von der Datenbank und nicht vom SQL Server-Instanzkonto festgelegt wird. – Spence

+0

Haben Sie Administratorrechte? Wenn Sie dies tun, chexk, welches Konto Sie mit dem Management Studio verbinden. – Spence

Verwandte Themen