mk-prg-net \ ms-sql \admin \ access-control \login

Anmeldung am Server: Zugriff auf Server gewähren

Übersicht der Zugriffsbeschränkungen eines Benutzers auf SQL- Serverressourcen.

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:

  • Sicheres Login und Authentifizierung durch robuste Windows- Protokolle (Kerberos), keine unverschlüsselte Übertragung von Passworten im Netz.
  • Mit dem Login an der Arbeitsstation der Arbeitsgruppe oder am Domänecontroller kann einem Benutzer auch automatisch Zugriff auf SQL- Server erteilt werden, ohne das weitere Logins notwendig sind (single sign on).
  • Auch Windows Gruppen (lokal, AD) können Anmelderechte erteilt werden → alle Gruppenmitglieder haben dann das Recht zur Anmeldung.
  • Zugriff z.B. von Diensten und Webanwendungen über allgemeine Dienstkonten

Nachteile:

  • Zugriff als User nur innerhalb einer Workgroup/AD- Domäne möglich.

Vorteile:

  • Anmeldung auch von Nicht- Windows- Systemen aus möglich (entsprechende ODBC- Treiber vorausgesetzt)

Nachteile

  • Passworte können versehentlich unverschlüsselt übertragen werden.
  • Zusätzliche Menge von Benutzern abseits der AD- Domäne können bei mangelnder Pflege zum Risiko werden.

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.
Achtung: 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_DATABASE
Der 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