Kapitel 10: SQL Server
Überblick
Die Datenbanksicherheit eines SQL Servers stellt sich wesentlich komplexer dar als zum Beispiel bei einer
lokalen Access-Datenbank. Zunächst gilt es zu unterscheiden zwischen
SQL Server-Sicherheit und
Windows-Sicherheit.
Während die erste Variante auf den User-Konten des SQL Servers beruht und auch nur dort verwaltet wird,
verwendet die zweite Variante das Windows-Sicherheitsmodell und übernimmt die User des Betriebs-
systems für die Anmeldung am SQL Server. Meist wird jedoch eine Vermischung von SQL Server- und NT-
Sicherheit stattfinden, Sie sollten also dieses Modell verwenden. Mit Hilfe des SQL Server Management
Studios können Sie das gewünschte Sicherheitsmodell festlegen.
Abbildung 10.41 Einstellen des Sicherheitsmodells
Der Vorteil dieser Variante: Die User brauchen sich im Allgemeinen nur einmal anzumelden (System-
Login), für die Verbindung zum SQL Server wird in diesem Fall eine Trusted Connection aufgebaut. Sie ken-
nen diese Form auch von den ADO-Connectionstrings.
Die Verbindungszeichenfolge enthält keinerlei Konteninformationen (Name, Passwort). Diese werden
intern an den SQL Server übermittelt.
660
BEISPIEL
BEISPIEL
Connectionstring für eine Verbindung mit integrierter Sicherheit
Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BeispielDB;Data Source=P200
Andererseits können Sie reine SQL Server-Konten erstellen, die zum Beispiel von Ihren Programmen zur
internen Verwaltung genutzt werden können, ohne dass es ein entsprechendes Windows-Konto gibt. Insbe-
sondere für Internet-Verbindungen bietet sich diese Variante an, der Client sendet seine Login-Id sowie
sein Passwort an den Server und erhält gegebenenfalls die Zugriffsrechte an der Datenbank bzw. bestimm-
ten Tabellen.
Connectionstring für eine Verbindung mit SQL Server-Sicherheit
Persist Security Info=True;User ID=Gewinnus;Password=geheim;Initial Catalog=BeispielDB;Data Source=P200
Rollen (Gruppen)
Vielleicht ist Ihnen schon der Begriff Rolle aufgefallen, dabei handelt es sich im Grunde genommen um
Gruppen, wie Sie sie auch von Microsoft Access oder der Windows-Systemverwaltung kennen. Derartige
Rollen vereinfachen die Zuweisung von Rechten für User mit einheitlichen Anforderungen. Sie brauchen
nicht mehr jedem einzelnen Nutzer diverse Rechte an unterschiedlichen Datenbankobjekten zuzuweisen,
sondern es genügt, wenn Sie dies für die Rolle tun. Nachfolgendnnen Sie beliebige Nutzer in die Rolle
einfügen.
Grundsätzlich müssen Sie zwei Typen von Rollen unterscheiden:
Server-Rollen
Datenbank-Rollen
Während Erstere für alle verwalteten Datenbanken gelten, lassen sich Datenbank-Rollen nur einer spe-
zifischen Datenbank zuordnen.
Neben den bereits vorhandenen Server-Rollen sind auch für jede Datenbank bereits einige Rollen vordefi-
niert.
Rolle Bedeutung
dbcreator Darf Datenbanken erstellen und verwalten
diskadmin Darf Festplattendateien verwalten
processadmin Darf SQL Server-Prozesse verwalten
securityadmin Darf SQL-Benutzernamen verwalten
serveradmin Darf SQL Server-Einstellungen konfigurieren
setupadmin Darf erweiterte gespeicherte Prozeduren verwalten
sysadmin Darf SQL Server-Installation durchführen
Tabelle 10.4 Die vordefinierten Server-Rollen
661
Datensicherheit
HINWEIS
Kapitel 10: SQL Server
Rolle Bedeutung
db_owner Darf alle Aufgaben innerhalb der Datenbank wahrnehmen (inkl. Wartungs- und Konfigurationsaktivitäten)
db_accessadmin Darf Benutzer und Gruppen der Datenbank hinzufügen
db_datareader Darf Daten aus Tabellen abrufen (lesen)
db_datawriter Darf Daten lesen und schreiben bzw. löschen
db_ddladmin Darf Datenbankobjekte erzeugen und verwalten (DDL-Befehle)
db_securityadmin Darf Anweisungs- und Objektberechtigungen in der Datenbank vergeben
db_backupoperator Darf die Datenbank sichern
db_denydatareader Darf keine Daten in der Datenbank anzeigen
db_denydatawriter Darf keine Daten in der Datenbank ändern
Tabelle 10.5 Die vordefinierten Datenbank-Rollen
Erstellen Sie in Ihrer Datenbank neue Konten (Nutzerlogins), können Sie diese den o.g. Rollen zuordnen.
Damit sind auch die entsprechenden Rechte an die User vergeben.
Sollten Sie weitere Rollen benötigen, können Sie auch nutzerdefinierte Rollen erzeugen. In diesem Fall müssen
Sie der Rolle jedoch noch entsprechende Rechte an den Datenbankobjekten einräumen, bevor Sie Nutzer in diese Rolle
eintragen.
Rechte
Dass die Rechtevergabe recht differenziert für die unterschiedlichen Objekte sein kann, zeigt die folgende
Tabelle:
Recht Recht
ALTER DATABASE DENY für Objekte
ALTER PROCEDURE DROP
ALTER TABLE EXECUTE
ALTER TRIGGER GRANT
ALTER VIEW GRANT für Objekt
BACKUP INSERT
CHECKPOINT READTEXT
CREATE DEFAULT REFERENCES
CREATE INDEX RESTORE
CREATE PROCEDURE REVOKE
CREATE RULE REVOKE für Objekt
CREATE SCHEMA SELECT
CREATE TABLE SETUSER
Tabelle 10.6 Mögliche Rechte
662

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.