Authentifizierung im SQL Server testen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Wenn Sie sich in die Programmierung des Sicherheitssystems des SQL Servers einarbeiten, wollen Sie die Berechtigungen der verschiedenen Windows-Benutzer, Windows-Gruppen oder SQL Server-Benutzer ausprobieren. Bei SQL Server-Benutzern, die sich über die SQL Server-Authentifizierung anmelden, ist das einfach. Bei Windows-Benutzern und -Benutzergruppen denkt der eine oder andere sicher schon darüber nach, dass er dann immer den Windows-Benutzer abmelden und sich unter dem Namen des zu prüfenden Benutzers einloggen muss. Das ist aber nicht der Fall – es gibt einfachere Methoden sowohl für den Zugriff von Access als auch direkt über das SQL Server Management Studio.

Testen mit SQL Server-Authentifizierung

Wir unterscheiden in diesem Beitrag wieder zwischen der SQL Server-Authentifizierung und der Windows-Authentifizierung. Bei der SQL Server-Authentifizierung ist es einfach. Wenn Sie einen Zugriff von Access aus ausführen wollen, um beispielsweise eine ODBC-Verknüpfung zu einer der SQL Server-Tabellen herzustellen, brauchen Sie ja nichts weiter zu tun als einfach die beim Herstellen der Verknüpfung verwendeten Zugangsdaten in der Verbindungszeichenfolge auf den jeweiligen Benutzer anzupassen.

In der Beispieldatenbank aus dem Beitrag SQL Server-Zugriff ohne gespeichertes Kennwort (www.access-im-unternehmen.de/1156) verwenden wir beispielsweise die Prozedur aus Listing 1, um die im Formular frmLogin abgefragten Werte für Benutzername und Kennwort einzugeben. Hier können wir also beliebig im Kontext verschiedener Benutzer auf die Zieldatenbank zugreifen.

Private Sub cmdGo_Click()
     Dim strServer As String
     Dim strDatenbank As String
     Dim strVerbindungszeichenfolge As String
     DoCmd.OpenForm "frmLogin", windowMode:=acDialog
     If IstFormularGeoeffnet("frmLogin") Then
         strBenutzername = Nz(Forms!frmLogin!txtBenutzername, "")
         strKennwort = Nz(Forms!frmLogin!txtKennwort, "")
         DoCmd.Close acForm, "frmLogin"
         strServer = DLookup("Wert", "tblOptionen", "Bezeichnung = ''''Server''''")
         strDatenbank = DLookup("Wert", "tblOptionen", "Bezeichnung = ''''Datenbank''''")
         strVerbindungszeichenfolge = "ODBC;DRIVER={SQL Server};SERVER=" & strServer & ";DATABASE=" & strDatenbank _
             & ";UID=" & strBenutzername & ";PWD=" & strKennwort & ";OPTION=3;LOG_QUERY=1;"
         If VerbindungHerstellen(strVerbindungszeichenfolge) = True Then
             TabellenVerknuepfen strVerbindungszeichenfolge
             DoCmd.Close acForm, Me.Name
         Else
             ''''Aktionen beim Scheitern der Verknüpfung
         End If
     End If
End Sub

Listing 1: Prozedur zum Verknüpfen einer Tabelle

ähnlich sieht es aus, wenn Sie die SQL Server-Authentifizierung im SQL Server Management Studio testen wollen. Sie können dann einfach jeweils eine neue Verbindung erstellen und sich als der entsprechende Benutzer einloggen. Dazu nutzen Sie den Befehl Verbinden|Datenbankmodul im Objekt-Explorer (siehe Bild 1).

Neue Verbindung mit einem alternativen SQL Server-Benutzer

Bild 1: Neue Verbindung mit einem alternativen SQL Server-Benutzer

Wenn Sie sich auf diese Weise angemeldet haben, arbeiten Sie im Kontext dieses Benutzers. Sie werden es dann schnell merken, wenn Sie versuchen, auf Elemente zuzugreifen, für die dieser Benutzer keine Berechtigungen hat.

Testen mit Windows-Authentifizierung im SQL Server Management Studio

Unter der Windows-Authentifizierung ist es ein wenig aufwendiger, den Zugriff unter einem anderen Benutzerkonto beziehungsweise unter einer anderen Benutzergruppe zu testen. Sie können ja, wie im Beitrag SQL Server: Sicherheit und Benutzerverwaltung(www.access-im-unternehmen.de/1154) beschrieben, auch eine Benutzergruppe statt eines Benutzers für die Anmeldung am SQL Server verwenden.

Wenn Sie nun mit Ihrem Standardbenutzerkonto am Windows-System angemeldet sind, können Sie beim öffnen des SQL Server Management Studios und der Auswahl des Authentifizierungstyps Windows-Authentifizierung nicht den Windows-Benutzer auswählen, sondern können sich nur im Kontext des aktuell an Windows angemeldeten Benutzers anmelden. Deshalb sind die beiden Felder für Benutzername und Kennwort auch deaktiviert (siehe Bild 2).

Bei der Windows-Authentifizierung sind die Felder Benutzername und Kennwort ausgegraut.

Bild 2: Bei der Windows-Authentifizierung sind die Felder Benutzername und Kennwort ausgegraut.

Wie aber können wir nun eine Verbindung zum SQL Server als ein anderer Benutzer realisieren Dazu klicken Sie mit der rechten Maustaste etwa auf den Eintrag für das SQL Server Management Studio. Hier erscheint ein weiterer Eintrag mit diesem Namen. Wenn Sie nun mit der rechten Maustaste auf diesen neuen Eintrag klicken, diesmal allerdings bei gedrückter Umschalt-Taste, erscheint ein interessanter Kontextmenü-Befehl: Als anderer Benutzer ausführen. Diesen klicken wir nun an (siehe Bild 3).

Kontextmenü-Eintrag zum öffnen einer Anwendung im Kontext eines anderen Benutzers

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar