2009-05-28 4 views
1

Ich muss eine Verbindung zu einer sicheren SQL Server-Datenbank mithilfe von Perl DBI herstellen. Ich muss einen Weg finden, den Benutzer sicher zu authentifizieren (ohne Angst vor dem Abhören und ohne Passwörter auf der Client-Seite zu speichern). Ich benutze SQL Server 2008 auf Windows Server 2008, and Perl 5.10 auf XP.Wie kann ich die Verbindung zu SQL Server von Perl DBI sichern?

SQL Server unterstützt verschlüsselte Verbindungen über etwas, das als "SQL Server Native Access Client-API" bezeichnet wird, aber ich kann nicht sagen, ob dies von einem DBD-Treiber unterstützt wird oder wie es verwendet wird.

Ich bin widerwillig, den DBD::ODBC Treiber mit SQL Server-Authentifizierung zu verwenden, da ODBC Benutzer-IDs und Kennwörter in Klartext übermittelt.

Ich kann den DBD :: ODBC-Treiber nicht mit Windows-Authentifizierung (vertrauenswürdige Verbindung) verwenden, da sich der Server nicht in einer Active Directory-Domäne befindet, auf die über das Netzwerk des Clients zugegriffen werden kann.

Wie kann ich meine Verbindungen zur Datenbank sichern? Vielen Dank.

Antwort

1

zwei Optionen:

  1. einen IPSec-Tunnel zwischen zwei Standorten erstellen. Einige Informationen hier: technet.microsoft.com/en-us/library/cc737154(WS.10).aspx technet.microsoft.com/en-us/library/cc786385(WS.10).aspx

  2. Aktivieren Sie SSL. Ich bin mir nicht sicher, wie gut es geschützt wäre. technet.microsoft.com/en-us/library/ms189067.aspx

1

Ich würde vorschlagen, dass Sie irgendeine Art von gesichertem Verbindungssystem verwenden. Es könnte IPSec sein, aber es wird oft als kompliziert angesehen, also könnte es besser sein (oder schneller) mit OpenVPN, das ich benutze und mit dem ich im Allgemeinen zufrieden bin.

Es kann auf praktisch jedem Betriebssystem verwendet werden, ist schnell und kostenlos. Sie können es hier ansehen: http://openvpn.net/

2

Ich bin nicht gewillt, die DBD :: ODBC-Treiber mit SQL Server-Authentifizierung zu verwenden, da ODBC-Benutzer-IDs und Passwörter unverschlüsselt überträgt.

Das stimmt nicht genau. Wenn Sie einen neueren SQL Server verwenden und die Verschlüsselung nicht deaktiviert haben, werden der Benutzername/das Passwort und die Verbindungszeichenfolge wie folgt verschlüsselt:

Der Client kontaktiert den Server und teilt ihm mit, was er kann (z. B. SSL machen). Wenn der Server dann SSL unterstützt, muss der Client die Verbindungsinformationen verschlüsseln und danach auf unverschlüsselt zurückgehen. Sie sollten auch das Kontrollkästchen "Starke Verschlüsselung für Daten verwenden" im DSN anzeigen.