Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Domyślnie sterowniki firmy Microsoft dla języka PHP dla programu SQL Server używają uwierzytelniania systemu Windows do nawiązywania połączenia z programem SQL Server. Należy pamiętać, że w większości scenariuszy oznacza to, że tożsamość procesu lub tożsamość wątku serwera sieci Web (jeśli serwer sieci Web używa personifikacji) jest używana do łączenia się z serwerem, a nie tożsamości użytkownika końcowego.
Podczas używania uwierzytelniania systemu Windows do nawiązywania połączenia z programem SQL Server należy wziąć pod uwagę następujące kwestie:
Poświadczenia, w ramach których działa proces (lub wątek) serwera sieci Web, muszą odpowiadać prawidłowemu logowaniu do SQL Server, aby nawiązać połączenie.
Jeśli program SQL Server i serwer sieci Web znajdują się na różnych komputerach, należy skonfigurować program SQL Server w celu włączenia połączeń zdalnych.
Uwaga / Notatka
Atrybuty połączenia, takie jak Baza danych i Bufor połączeń , można ustawić podczas nawiązywania połączenia. Aby uzyskać pełną listę obsługiwanych atrybutów połączenia, zobacz Opcje połączenia.
Uwierzytelnianie systemu Windows powinno być używane do nawiązywania połączenia z programem SQL Server, jeśli jest to możliwe z następujących powodów:
Podczas uwierzytelniania żadne poświadczenia nie są przekazywane przez sieć; nazwy użytkowników i hasła nie są osadzone w parametrach połączenia bazy danych. Oznacza to, że złośliwi użytkownicy lub osoby atakujące nie mogą uzyskać poświadczeń przez monitorowanie sieci lub wyświetlanie parametrów połączenia wewnątrz plików konfiguracji.
Użytkownicy podlegają scentralizowanym zarządzaniu kontami; zasady zabezpieczeń, takie jak okresy wygasania haseł, minimalna długość hasła i blokada konta po wymuszaniu wielu nieprawidłowych żądań logowania.
Jeśli uwierzytelnianie systemu Windows nie jest praktycznym rozwiązaniem, zobacz Instrukcje: nawiązywanie połączenia przy użyciu uwierzytelniania programu SQL Server.
Przykład usługi SQLSRV
Za pomocą sterownika SQLSRV wchodzącego w skład Microsoft Drivers for PHP for SQL Server, w poniższym przykładzie użyto uwierzytelniania systemu Windows do połączenia się z lokalnym wystąpieniem SQL Server. Po nawiązaniu połączenia serwer jest odpytywany pod kątem logowania użytkownika, który uzyskuje dostęp do bazy danych.
W tym przykładzie przyjęto założenie, że na komputerze lokalnym zainstalowano program SQL Server i bazę danych AdventureWorks . Wszystkie dane wyjściowe są zapisywane w przeglądarce po uruchomieniu przykładu z przeglądarki.
<?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);
?>
przykład PDO_SQLSRV
W poniższym przykładzie użyto sterownika PDO_SQLSRV do wykonania tego samego zadania co poprzedni przykład.
<?php
try {
$conn = new PDO( "sqlsrv:Server=(local);Database=AdventureWorks", NULL, NULL);
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch( PDOException $e ) {
die( "Error connecting to SQL Server" );
}
echo "Connected to SQL Server\n";
$query = 'select * from Person.ContactType';
$stmt = $conn->query( $query );
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){
print_r( $row );
}
?>
Zobacz też
Instrukcje: nawiązywanie połączenia przy użyciu uwierzytelniania programu SQL Server
Przewodnik programowania dla sterowników firmy Microsoft dla języka PHP dla programu SQL Server
Informacje o przykładach kodu w dokumentacji
Jak: Utworzyć login do programu SQL Server
Instrukcje: tworzenie użytkownika bazy danych
Zarządzanie użytkownikami, rolami i identyfikatorami logowania