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).