it-swarm.com.de

Zusätzliche Sicherheit für vertrauenswürdige SQL Server-Verbindungen

Gibt es eine Möglichkeit, mithilfe der Windows-Authentifizierung zu verhindern, dass Benutzer über ODBC) eine Verbindung zur Datenbank herstellen?

4
Xilmiki

Die Funktion, die in diesem Szenario helfen soll, ist Anwendungsrollen . Mit einer Anwendungsrolle können Sie dem Benutzer erlauben, eine Verbindung zur Zieldatenbank herzustellen, aber keine Abfragen ausführen, bis die Anwendung ein Geheimnis zur Aktivierung der Anwendungsrolle bereitstellt.

Eine mögliche Lösung besteht darin, einen Server-Anmeldetrigger zu erstellen, der die app_name() überprüft. Ich habe den folgenden Server-Trigger auf meiner lokalen Instanz erstellt und versucht, eine Verbindung über ODBC herzustellen. Die Verbindung wurde abgelehnt. Sie müssten für Ihre Bedürfnisse modifizieren.

CREATE TRIGGER trgGetAppName ON ALL SERVER
FOR LOGON AS

IF APP_NAME() NOT LIKE ('Microsoft SQL Server Management Studio%')
    AND APP_NAME() NOT LIKE ('.Net SqlClient Data Provider%')
BEGIN
    ROLLBACK
END

Ein Wort der Vorsicht bei Anmeldeauslösern :

Ein Anmeldetrigger kann erfolgreiche Verbindungen zum Datenbankmodul für alle Benutzer, einschließlich Mitglieder der festen Serverrolle sysadmin, effektiv verhindern. Wenn ein Anmeldetrigger Verbindungen verhindert, können Mitglieder der festen Serverrolle sysadmin über die dedizierte Administratorverbindung oder durch Starten des Datenbankmoduls im minimalen Konfigurationsmodus (-f) eine Verbindung herstellen.

7
Scott Hodgin