Sdílet prostřednictvím


Postupy: Připojení pomocí ověřování systému Windows

Stáhnout ovladač PHP

Ovladače Microsoftu pro PHP pro SQL Server ve výchozím nastavení používají ověřování systému Windows pro připojení k SQL Serveru. Je důležité si uvědomit, že ve většině scénářů to znamená, že identita procesu webového serveru nebo identita vlákna (pokud webový server používá zosobnění) se používá k připojení k serveru, nikoli identitě koncového uživatele.

Při použití Windows Authentication k připojení k SQL Serveru je třeba zvážit následující body:

  • Přihlašovací údaje, na kterých běží proces webového serveru (nebo vlákno), musí být mapované na platné přihlášení k SQL Serveru, aby bylo možné navázat připojení.

  • Pokud jsou SQL Server a webový server na různých počítačích, musí být SQL Server nakonfigurovaný tak, aby povoloval vzdálená připojení.

Poznámka:

Atributy připojení, jako je databáze a fond připojení, se dají nastavit při navázání připojení. Úplný seznam podporovaných atributů připojení najdete v tématu Možnosti připojení.

Ověřování systému Windows by se mělo použít k připojení k SQL Serveru, kdykoli je to možné z následujících důvodů:

  • Během ověřování se přes síť nepředávají žádné přihlašovací údaje; uživatelská jména a hesla nejsou vložena do připojovacího řetězce databáze. To znamená, že uživatelé se zlými úmysly nebo útočníci nemohou získat přihlašovací údaje monitorováním sítě nebo zobrazením připojovacích řetězců v konfiguračních souborech.

  • Uživatelé podléhají centralizované správě účtů; zásady zabezpečení, jako jsou období vypršení platnosti hesla, minimální délka hesla a uzamčení účtu po vynucení několika neplatných žádostí o přihlášení.

Pokud ověřování systému Windows není praktická možnost, přečtěte si téma Postupy: Připojení pomocí ověřování SYSTÉMU SQL Server.

Příklad SQLSRV

Pomocí ovladače SQLSRV ovladačů Microsoft pro PHP pro SQL Server používá následující příklad ověřování systému Windows pro připojení k místní instanci SQL Serveru. Po navázání připojení se server dotazuje na přihlášení uživatele, který přistupuje k databázi.

Příklad předpokládá, že SQL Server a databáze AdventureWorks jsou nainstalovány v místním počítači. Při spuštění příkladu z prohlížeče se do prohlížeče zapíše veškerý výstup.

<?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);  
?>  

příklad PDO_SQLSRV

Následující příklad používá ovladač PDO_SQLSRV k provedení stejné úlohy jako předchozí ukázka.

<?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 );   
}  
?>  

Viz také

Postupy: Připojení pomocí ověřování SQL Serveru

Průvodce programováním pro ovladače Microsoftu pro PHP pro SQL Server

Příklady kódu v dokumentaci

Postupy: Vytvoření přihlášení k SQL Serveru

Postupy: Vytvoření uživatele databáze

Správa uživatelů, rolí a přihlášení

oddělení uživatelského schématu

Udělení oprávnění objektu (Transact-SQL)