Anmeldung am Server: Zugriff auf Server gewähren
Die erste Barriere beim Zugriff ist die Authentifizierung (Anmeldung am Server). Der Administrator kann dazu einem Prinzipal (Windows- Benutzer, SQL- Server Benutzerkonto) eine Recht auf Anmeldung am Server erteilen oder entziehen.
Versucht ein Prinzipal auf den Server zuzugreifen, dann prüft dieser, ob ein Anmelderecht existiert. Wenn ja, dann gilt das Prinzipal als authentifiziert, und es wird eine Sitzung eröffnet. Die Sitzung ist mit der Verbindung (Connection) assoziiert, über die der Zugriff durch das Prinzipal auf den Server erfolgte.
Wurde einem Windows- Benutzer ein Anmlederecht eingeräumt, dann ist innerhalb einer Arbeitsgruppe oder Domäne beim Zugriff kein erneutes login mit Benutzername oder Passwort nötig. SQL Server vertraut der Authentifizierung von Windows.
Der SQL- Server kann auch unabhängig vom Betriebssystem eine Liste berechtigter Prinzipale verwalten, genannt SQL Server Logins. Diese werden direkt in Systemtabellen des SQL- Servers gespeichert. Ein Principal mit einem SQL Server Login muss sich vor dem Zugriff stets mit seinem Benutzernamen und Passwort authentifizieren.
Authentifizierungsmodi |
|
---|---|
Windows- Authentifizierung |
SQL- Serverauthentifizierung |
Vorteile:
Nachteile:
|
Vorteile:
Nachteile
|
Einstellen des Authentifizierungsmodus über SQL Server Management Studio:
Eigenschaften vom Server\Sicherheit
Vordefinierte Anmeldungen
Jede Instanz eines SQL Servers verfügt über vordefinierte Anmeldungen.
Name | Bedeutung | deaktivierbar |
---|---|---|
sa | Systemadministrator, SQL Login | ja |
Auflisten aller Logins
exec sp_helplogins
Auflisten aller angemeldeten Benutzer
exec sp_who [ @login_name='login']
SQL- Server Logins
SQL- Server Logins ermöglichen es Anwendungen und Usern, die nicht durch eine AD- Domäne verwaltet werden, sich an den SQL Server anzumelden. Für jedes SQL Server Login wird dazu in der Tabelle sysxlogins ein Benutzername + Passwort gewspeichert. Im Folgenden wird das Anlegen der Benutzerkonten beschrieben.
use master go -- Um die folgende Abfrage auszuführen, muß man Mitglied der Rolle sysadmin sein select * from sysxlogins go
Anlegen eines SQL Benutzerkontos
Mit CREATE LOGIN
kann ein neues SQL Server Login angelegt werden:
CREATE LOGIN login-name WITH PASSWORD = 'password' DEFAULT DATABASE = 'database' -- Datenbank, mit der Benutzer nach der Anmeldung verbunden ist -- (Standard: master)
Kennwort ändern
Das Kennwort eines SQL Server Logins kann mittels ALTER LOGIN
geändert werden:
ALTER LOGIN login-name WITH OLD_PASSWORD = 'password' PASSWORD = 'new password'
Sicherheits- Richtlinie für ein SQL Server Login definieren
Die Sicherheitsrichtlinie legt Regeln fest, mit welchen der Zugriffsschutz beim
Nutzen eines SQL Server Logins erhöht wird. Die Regeln implementieren
damit den Zugriffsschutz, wie sie Windows- Logins durch die Kennwortrichtlinie
des Betriebssystems erhalten (siehe secpol.msc
). Die Regeln sind:
- MUST_CHANGE
- Beim nächsten Login (z.B. in SSMS mit SQL Server Login) muss der Benutzer sein Passwort ändern.
- CHECK_POLICY= ON|OFF
- Das Kennwort muss den Komplexitätsanforderungen Windows- Kennwortrichtlinie entsprechen
- CHECK_EXPIRATION=ON|OFF
- Das Passwort muß in regelmäßigen Zeitintervallen geändert werden.
CHECK_POLICY
und CHECK_EXPIRATION
müssen zusammen verwendet werden.
Weitere Details zu den Sicherheitsrichtlinien findet man hier.
Benutzerkonto deaktivieren oder löschen löschen
Bestehende SQL Server Logins werden gelöscht mittels
DROP LOGIN Login
Soll ein SQL Server Login nur vorübergehend unmöglich sein, dann kann es wie folgt deaktiviert werden:
ALTER LOGIN Login DISABLE
Windows- Authentifizierung
Windows- Gruppen (Workgroup, AD) existieren unabhängig vom SQL- Server. Soll einem authentifizierten Windows- User ein Login am SQL Server möglich sein, dann muß er im Verzeichnis der gültigen Anmeldungen aufgenommen sein. Dieser Aufnahmeprozess wird als hinzufügen eines Windows- Prinzipal bezeichnet.
Windows- Benutzerkonten werden mit folgenden BEfehlen hinzugefügt:
CREATE LOGIN [DOMAIN\USER | HOSTNAME\USER] FROM WINDOWS WITH DEFAULT_DATABASEDer Name des Windows Benutzerkontos muss in [] eingeschlossen werden wegen dem Backslash (UNC Namen sind keine regulären Namen).
Auslisten der Windows- Logins
select name from sysxlogins where name like '%\%'
Sicherheitsrichtline für lokale Anmeldung am Server
Das direkte Ausführen von Scripten auf dem Server wird aus Sicherheitsgründen in der Regel unterbunden, um den Server nicht unnötig zu belasten. Sollen trotzdem direkt auf dem Server interaktiv Skripte ausgeführt werden, dann ist folgende Einstellung an den lokalen Richtlinen notwendig:
start/programme/verwaltung/lokale Sicherheitsrichtlinien/lokale Richtlinien/ Zuweisen von Benutzerrechten/lokal anmelden-> Gruppe der SQL- Benutzer hinzufügen