HINWEIS
BEISPIEL
Verwalten mit T-SQL
Diese Variante sollten Sie verwenden, wenn Sie ohnehin viel mit SQL-Anweisungen arbeiten (z.B. SQL-
Skripte). Gerade für VBA-Programmierer bietet sich diese Möglichkeit an, da Sie diverse Hilfe-Texte und
Microsoft-Quellen ohne Probleme übernehmen können.
Der folgende Abschnitt erhebt nicht den Anspruch auf Vollständigkeit. Optionen und Parameter werden nur so
weit besprochen, wie es unbedingt notwendig erscheint.
Überblick
Die folgende Tabelle zeigt die wichtigsten T-SQL-Anweisungen zum Administrieren von SQL Server-
Datenbanken.
Anweisung Beschreibung
sp_addlogin Erstellt ein neues Nutzerkonto auf dem SQL Server
sp_password Ändert das Kennwort eines Nutzers
sp_droplogin Entfernt ein Nutzerkonto
sp_grantlogin Erlaubt den Zugriff von Windows-Konten auf den SQL Server
sp_revokelogin Verhindert dauerhaft den Zugriff von Windows-Konten auf den SQL Server
sp_denylogin Verhindert den Zugriff von Windows-Konten auf den SQL Server
sp_grantdbaccess Fügt der aktuellen Datenbank ein Nutzerkonto hinzu
sp_addrole Fügt der aktuellen Datenbank eine Rolle hinzu
sp_addrolemember Fügt der Rolle ein neues Benutzerkonto hinzu
GRANT Zuweisen von Rechten an Nutzer/Gruppen
REVOKE Entziehen von Rechten.
Tabelle 10.7 T-SQL-Anweisungen zum Administrieren
Der Aufruf der T-SQL-Anweisungen gestaltet sich mit der Execute-Methode des Connection-Objektes abso-
lut einfach.
Aufruf einer T-SQL-Anweisung
CurrentProject.Connection.Execute "EXECUTE sp_addlogin 'Gewinnus', 'geheim','Beispieldatenbank' "
Voraussetzungen für das Beispiel sind ein ADP-Projekt sowie die entsprechenden Rechte innerhalb der
Datenbank. Auf die Anweisung EXECUTE können Sie eigentlich verzichten. Aus Gründen der besseren
Lesbarkeit (es handelt sich um einen Prozeduraufruf) sollten Sie es dennoch tun.
Erstellen eines neuen Users
Geht es darum, einen neuen Nutzer zu erzeugen, genügt der einfache Aufruf der Prozedur sp_addlogin:
665
Datensicherheit
BEISPIEL
BEISPIEL
BEISPIEL
BEISPIEL
HINWEIS
Kapitel 10: SQL Server
sp_addlogin '<Loginname>'[,'<Password>'][,'<Datenbank>'][,'<Sprache>']
Übergeben Sie neben dem Nutzernamen noch das Passwort und den Namen der Standarddatenbank.
Erzeugen des neuen Kontos
Müller
EXECUTE sp_addlogin "Müller", "geheim","Beispieldatenbank"
Löschen eines Benutzers
Vorhandene User/Konten löschen Sie mit der Prozedur sp_droplogin.
Löschen des Kontos
Müller
EXECUTE sp_droplogin "Müller"
Erstellen einer neuen Rolle
Eine neue Rolle erzeugen Sie mit der Prozedur sp_addrole.
Erzeugen der Rolle
Verwaltung
sp_addrole "Verwaltung"
Hinzufügen von Usern zu einer Rolle
Ein Konto bzw. einen User fügen Sie mit sp_addrolemember in eine bestehende Rolle ein.
Einfügen von
Müller
in die Rolle
Verwaltung
EXECUTE sp_addrolemember "Verwaltung", "Müller"
Mit sp_droprolemember können Sie diesen User wieder entfernen.
Verwaltung von Rechten
Wie schon bei der Verwaltung mit dem SQL Server Management Studio müssen wir zunächst einen Zugriff
auf die Datenbank ermöglichen. Dazu nutzen wir die Prozedur sp_grantdbaccess.
Da sich die Prozedur sp_grantdbaccess nur auf die aktuelle Datenbank bezieht, müssen Sie gegebenenfalls mit
USE die Datenbank wechseln. Es ist kein Problem, zwei SQL-Anweisungen mit einem Aufruf von Execute auszuführen. Trennen
Sie beide Anweisungen einfach mit einem Semikolon.
666
BEISPIEL
BEISPIEL
BEISPIEL
User
Müller
erhält die Zugriffsrechte auf die Datenbank
Verleger.
USE Verleger; EXECUTE sp_grantdbaccess 'Müller'
Das eigentliche Zuweisen von Rechten innerhalb der Datenbank erfolgt mit dem Befehl GRANT (es handelt
sich nicht um eine Prozedur!):
GRANT {ALL | Recht[,...n]} TO User|Rolle [, User|Rolle] ...
Folgende Rechte können Sie vergeben (die Bezeichner dürften für sich sprechen):
CREATE DATABASE
CREATE DEFAULT
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE VIEW
Der User
Müller
erhält das Recht, Tabellen und Views zu erzeugen (der Aufruf bezieht sich auf die momentan
aktive Datenbank).
GRANT CREATE TABLE, CREATE VIEW TO Müller
Möchten Sie Rechte an speziellen Objekten vergeben, müssen Sie eine erweiterte Form des GRANT-Befehls
nutzen:
GRANT {ALL | Recht[,...n]}
{ [(Spalte[,...n])] ON {Tabelle | View}
| ON {Tabelle | View}[(Spalte[,...n])]
| ON {StoredProcedure }
} TO User|Rolle [,...n]
Für Tabellen und Views können Sie die folgenden Rechte vergeben:
SELECT
UPDATE
INSERT
REFERENCES
DELETE
Die User
Doberenz
und
Gewinnus
erhalten Lese-/Schreibrechte an der Tabelle
Personen.
GRANT INSERT, UPDATE ON Personen TO Doberenz, Gewinnus
667
Datensicherheit

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.