SQL 2008 sysadmin Rechte für Administrator

“Der Administrator darf alles”

Diese Aussage trifft fast immer zu – aber eben nur fast. Wer schon einmal einen SQL Server 2008 installiert hat und dabei vergas, dem Windows-Administrator die “sysadmin” Rolle zu übertragen, der weiss wovon ich spreche. Die Folge sind zunächst unerklärliche Login Fehler mit dem Administrator im Management Studio. In früherern SQL Versionen war dies anders. Damals war der lokale Administrator automatisch Mitglied in der sysadmin Gruppe. Dies wurde mit SQL 2008 geändert.

Was tun?

Was kann man tun, wenn man bei der Installtion vergessen hatte, dem Administrator die sysadmin Rolle zu übertragen? Eine Neuinstallation des SQL-Servers scheidet in der Regel aus. Also braucht man einen Plan B, wie er schön in einem Blogartikel von Chris Randall aufgezeigt wurde. Er Beschreibt die Vorgehensweise für einen SQL Server 2008. Im Falle einer SQL-Server 2008 Express Installation ist der Vorgang leicht abgewandelt und weiter unten erklärt.

SQL-Server 2008

  • Administrative Konsole öffnen
net stop MSSQLServer
  • Wechsel in das SQL Programmverzeichnis
cd "c:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn"
  • Start SQL Server in Single User Mode
sqlserv.exe -m
  • Administrative Konsole geöffnet lassen
  • neue Administrative Konsole öffnen und ins Binn Verzeichnis wechseln
osql -E -s <myServer>
CREATE LOGIN [Domain\Username] FROM WINDOWS
go
exec sp_addsrvrolemember 'Domain\Username', 'sysadmin'
go
exec sp_helpsrvrolemember 'sysadmin'
go
quit
  • Wechseln zur ersten Administrativen Konsole
  • Ctrl-C
  • mit “y” bestätigen
net start MSSQLServer

 

SQL Server 2008 Express

  • Administrative Konsole
net stop MSSQL$SQLEXPRESS
  • Wechsel in BINN Verzeichnis
C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn
  • Start SQL Server in Single User Mode
sqlserv.exe -m -s SQLEXPRESS
  • Administrative Konsole geöffnet lassen
  • neue Administrative Konsole öffnen
osql -E -s <myServer>\SQLEXPRESS
CREATE LOGIN [Domain\Username] FROM WINDOWS
go
exec sp_addsrvrolemember 'Domain\Username', 'sysadmin'
go
exec sp_helpsrvrolemember 'sysadmin'
go
quit
  • Wechseln zur ersten Administrativen Konsole
  • Ctrl-C
  • mit “y” bestätigen
net start MSSQL$SQLEXPRESS

 Links

 

Veeam: Instant Recovery hängt

Ein Veeam 6.0 Instant Recovery Job hing fest und lies sich mit keinem herkömmlichen Mittel beenden. Weder ein Neustart der Dienste, noch ein Neustart des Servers brachte den Job unter Kontrolle. Letztlich brachte nur ein Eingriff in die Veeam Datenbank, wie sie vom Veeam Support empfohlen wurde, eine Lösung des Problems.

  • SQL Server Management Studio öffnen und mit der VeamBackup Instanz verbinden
  • Datenbanken erweitern und die Datenbank VeeamBackup auswählen
  • Rechtsklick auf VeeamBackup > Neue Abfrage
  • Den SQL Code unten in das Abfragefenster kopieren und ausführen
UPDATE [ReportRestoreSessionsAndTaskSessionsView] 
SET "state" = -1 
WHERE "initiator_name" not like 'null'

SQL Server: Slipstream SP1

Eine zunächst einfache Aufgabenstellung erwies sich (wie leider oft) als problematisch in der Durchführung. Ein Instanz eines SQL-Server 2008 R2 Standard sollte um ein Feature erweitert werden. Soweit – so einfach. Datenträger einlegen, Setup.EXE ausführen und Feature installieren. Leider konnte ich die Instanz nicht dafür auswählen. Lediglich eine neue Instanz konnte mit dem Feature installiert werden. Nach einigen Experimenten (VM-Snapshot sei Dank!) fand ich die Ursache. Das Installationsmedium war SQL Server 2008 R2 und die Installation auf dem Server hatte bereits SP1. Im Test war es möglich SP1 von der Instanz zu entfernen, das Feature zu installieren und danach wieder SP1 zu installieren. Am Produktivsystem möchte ich dies unter allen Umständen vermeiden. Alternativ nimmt man in solchen Fällen ein passendes Installationsmedium (SQL Server 2008 R2 mit SP1), aber dieses ist bei Microsoft nicht zu finden.

Alternative: Man baut sich selbst ein Installtionsmedium aus dem Original Setupmedium und den SP1 Dateien (Slipstream).

Zum Glück fand ich eine schöne Anleitung hierfür im MSDN.