Vorgehensweise: Herstellen einer Verbindung mithilfe der Windows-Authentifizierung

Standardmäßig stellt SQL Server-Treiber für PHP mithilfe der Windows-Authentifizierung eine Verbindung mit SQL Server her. In den meisten Szenarien bedeutet dies, dass die Prozessidentität oder Threadidentität (falls der Webserver Identitätswechsel verwendet) des Webservers dazu verwendet wird, eine Verbindung mit dem Server herzustellen, und nicht die Identität des Endbenutzers.

Wenn Sie die Windows-Authentifizierung zum Herstellen einer Verbindung mit SQL Server verwenden, müssen folgende Punkte berücksichtigt werden:

  • Die Anmeldeinformationen, unter denen der Prozess (oder Thread) des Webservers ausgeführt wird, müssen einer gültigen SQL Server-Anmeldung zugeordnet sein, um eine Verbindung herstellen zu können.
  • Wenn sich SQL Server und der Webserver auf unterschiedlichen Computern befinden, muss SQL Server so konfiguriert werden, dass Remoteverbindungen aktiviert sind.

Hinweis

Verbindungsattribute wie Database und ConnectionPooling können festgelegt werden, wenn Sie eine Verbindung herstellen. Eine vollständige Liste der unterstützten Verbindungsattribute finden Sie unter sqlsrv_connect.

Aus folgenden Gründen sollte nach Möglichkeit die Windows-Authentifizierung zum Herstellen einer Verbindung mit SQL Server verwendet werden:

  • Es werden bei der Authentifizierung keine Anmeldeinformationen über das Netzwerk weitergegeben; Benutzernamen und Kennwörter sind nicht in die Datenbank-Verbindungszeichenfolge eingebettet. Dies bedeutet, dass böswillige Benutzer oder Angreifer die Anmeldedaten nicht durch Überwachen des Netzwerks oder durch Anzeigen der Verbindungszeichenfolgen in Konfigurationsdateien erlangen können.
  • Benutzer unterliegen der zentralisierten Kontoverwaltung. Sicherheitsrichtlinien wie Ablaufzeiträume für Kennwörter, minimale Kennwortlängen und Kontosperrung nach mehreren ungültigen Anmeldeversuchen werden erzwungen.

Wenn sich die Windows-Authentifizierung in der Praxis nicht einsetzen lässt, lesen Sie Vorgehensweise: Herstellen einer Verbindung mithilfe der SQL Server-Authentifizierung.

Beispiel

Im folgenden Beispiel wird die Windows-Authentifizierung dazu verwendet, eine Verbindung mit einer lokalen Instanz von SQL Server herzustellen. Nach dem Herstellen der Verbindung wird die Anmeldung des Benutzers, der auf die Datenbank zugreift, beim Server abgefragt.

Im Beispiel wird davon ausgegangen, dass SQL Server und die AdventureWorks-Datenbank auf dem lokalen Computer installiert sind. Alle Ausgaben werden an den Browser ausgegeben, wenn das Beispiel über den Browser ausgeführt wird.

<?php
/* Specify the server and connection string attributes. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");

/* Connect using Windows Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "Unable to connect.</br>";
     die( print_r( sqlsrv_errors(), true));
}

/* Query SQL Server for the login of the user accessing the
database. */
$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
     echo "Error in executing query.</br>";
     die( print_r( sqlsrv_errors(), true));
}

/* Retrieve and display the results of the query. */
$row = sqlsrv_fetch_array($stmt);
echo "User login: ".$row[0]."</br>";

/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

Siehe auch

Aufgaben

Vorgehensweise: Herstellen einer Verbindung mithilfe der SQL Server-Authentifizierung

Konzepte

Informationen zu den Codebeispielen in der Dokumentation

Weitere Ressourcen

Programmierhinweise
Vorgehensweise: Erstellen einer SQL Server-Anmeldung
Vorgehensweise: Erstellen eines Datenbankbenutzers
Verwalten von Benutzern, Rollen und Anmeldungen
Trennung von Benutzer und Schema
Erteilen von Objektberechtigungen (Transact-SQL)