Aus Datenbank ausgesperrt

Unter Umständen ist es möglich sich aus dem SQL-Server auszusperren. Besonders einfach geht es wenn der Administrator schafft seine Default-Datenbank zu löschen (muss er ja nicht selbst gewesen sein, da reicht ja eine unbedarfter Mitstreiter).

Häufig bekommt man dann folgende Fehlermeldung:

Can not open user default database. Login failed. Login failed for user 'fool'. (Microsoft SQL Server, Error: 4064)

Erstmal muß sich eine User anmelden, der die Rechte hat Login’s zu bearbeiten. Da dies häufig Admins sind (also Vordefinierte/Administratoren der Maschine) kann da schon eine Schwierigkeit entstehen in den Entprise Manager oder das SQL-Server Managment Studio zu kommen.

Hier ein kleiner Leitfaden damit man wieder mit den normalen Werkzeugen arbeiten kann.

– Am besten geht es mit den Kommandozeilen-Tool SQLCMD oder isql

– Anmelden mit der Option -U temp sqlcmd -d tempdb damit ist der User auf der Datenbank tempdb angemeldet.

– dort setzt man dann folgenden Befehl ab: alter login [username] with DEFAULT_DATABASE = <neue Defaultdatenbank>; die Default-Datenbank ist jetzt die <neue Defaultdatenbank>.

Mit dieser Kurzanleitung sollte es möglich sein, sich wieder am SQL Server Managmentstudio anmelden und dem Login kann eine bessere Defaultdatenbank verpaßt werden.

Über den SQL-Server auf eine MySQL-Datenbank zugreifen.

Um mit Hilfe der Linked-Server Technologie auf eine MySQL-Datenbank zuzugreifen, müsste man folgendes tun:

Als erstes muß der Linked Server (auf deutschen Systemen ‘Verbindungsserver’ angelegt werden, dazu kann man folgenden Befehl verwenden:

sp_addlinkedserver
'myAlias'
, 'MySQL'
, 'MSDASQL'
, Null
, Null
, 'Driver={MySQL ODBC 3.51 Driver}; DB=myDatabase; UID=myUserName; PWD=myPassword; SERVER=localhost;'
go

EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'myAlias',
@useself = 'TRUE',
@locallogin = NULL
go

Wichtig ist, das der ODBC-Treiber von MySQL auch auf der SQL-Server-Maschine installiert ist. Bei MySQL-Datenbanken, die auf anderen Rechnern betrieben werden, die als den localhost ist ein Benutzer einzurichten, der auch remote zugang auf die entsprechenden MySQL-Datenbanken hat.

Zugriff auf die entsprechenden Tabellen erhält man nach folgenden Schema:

Select * from openquery( linked Server Name,'PassThrougth Query')

Mit Hilfe von Openquery können auch Insert, Update und Delete Anweisungen ausgeführt werden, dazu sollte man aber Dokumentation lesen.

SQL-Server Reporting Services – Fehler 0x8007052E

Dieser Fehler tritt sehr häufig in größeren Umgebungen auf. Der SQL-Server Reporting Service nutzt bei der Verarbeitung eines Berichtes einen niedrig privilegierten Systembenutzer. Ist dieser User nicht „Local System“ kann es zu Problemen führen, wenn die Passwort-Richtlinien zu einer Veränderung des Passwortes zwingen. Spätestens nach dem Neustarten des SQL-Server Reporting Service ist es möglich das die Berichte nicht mehr richtig ausgeführt werden.

SQL-Server Reporting Services - Fehler 0×8007052E

Die Fehlermeldung: Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort. Ausnahme von HRESULT: „0x8007052E“ kann aber ziemlich einfach behoben werden. Das Passwort für den „Execution Accout“ muss neu gesetzt werden.

Zur Erhöhung der Verfügbarkeit ist darauf zu achten, das die Sicherheitsrichtlinie für Passwort, das Passwort nicht automatisch verändert oder ungültig gemacht wird.

IIS vs. Skype

Heute habe ich eine interessantes Phänomen entdeckt. Skype reist sich den Port 80 eines Rechners so unter den Nagel, das Anwendungen wie der IIS diesen nicht mehr verwenden können.

Mit ist das aufgefallen, das sich mein lokal installierer “Internet Information Server” (IIS) auf meiner Workstation nicht mehr aktivieren lies. Der “WWW-Publishingdienst” (W3SVC) lief, aber eine beendete Website auf dem IIS wollte nicht starten. Der IIS meldete dann, dass die Adresse bereits benutzt würde.

Nach dem ich alle Anwendungen nach einander beendet hatte, kam heraus, das Skype der Übeltäter war.

Ist ja auch klar, auf einem Rechner kann nur eine Anwendung einen Port benutzen und scheinbar hat Skype diesen Port sofort benutzt. Dieses Verhalten ist nicht ganz so ungeschickt, denn wenn man hinter einer Firewall sitzt ist Port 80 oft auf der Firewall geöffnet und Skype muß sich nicht groß “anstrengen” um mit der Außenwelt zu kommunizieren.

Das Probelm kann man aber leicht umgehen, wenn man unter Skype in den Optionen/Erweitert/Verbindung die Option “Port 80 und Port 443 für eingehende Verbindungen verwenden” entfernt.