Delen via


Procedure: Verbinding maken met Windows-verificatie

PHP-stuurprogramma downloaden

De Microsoft-stuurprogramma's voor PHP voor SQL Server maken standaard gebruik van Windows-verificatie om verbinding te maken met SQL Server. Het is belangrijk te weten dat in de meeste scenario's dit betekent dat de procesidentiteit of threadidentiteit van de webserver (als de webserver imitatie gebruikt) wordt gebruikt om verbinding te maken met de server, niet de identiteit van een eindgebruiker.

De volgende punten moeten worden overwogen wanneer u Windows-verificatie gebruikt om verbinding te maken met SQL Server:

  • De inloggegevens waaronder het webserverproces (of de thread) wordt uitgevoerd, moeten overeenkomen met een geldige SQL Server-aanmelding om een verbinding tot stand te brengen.

  • Als SQL Server en de webserver zich op verschillende computers bevinden, moet SQL Server worden geconfigureerd om externe verbindingen in te schakelen.

Opmerking

Verbindingskenmerken zoals Database en ConnectionPooling kunnen worden ingesteld wanneer u een verbinding tot stand brengt. Zie Verbindingsopties voor een volledige lijst met ondersteunde verbindingskenmerken.

Windows-verificatie moet worden gebruikt om waar mogelijk verbinding te maken met SQL Server om de volgende redenen:

  • Er worden geen inloggegevens doorgegeven via het netwerk tijdens authenticatie; gebruikersnamen en wachtwoorden worden niet ingesloten in de verbindingsreeks van de database. Dit betekent dat kwaadwillende gebruikers of aanvallers de referenties niet kunnen verkrijgen door het netwerk te bewaken of door verbindingsreeksen in configuratiebestanden te bekijken.

  • Gebruikers zijn onderworpen aan gecentraliseerd accountbeheer; beveiligingsbeleid, zoals verloopperioden voor wachtwoorden, minimale wachtwoordlengten en accountvergrendeling nadat meerdere ongeldige aanmeldingsaanvragen zijn afgedwongen.

Als Windows-verificatie geen praktische optie is, zie Hoe: Verbinding maken met SQL Server-verificatie.

SQLSRV-voorbeeld

Met behulp van het SQLSRV-stuurprogramma van de Microsoft-stuurprogramma's voor PHP voor SQL Server, gebruikt het volgende voorbeeld de Windows-verificatie om verbinding te maken met een lokaal exemplaar van SQL Server. Nadat de verbinding tot stand is gebracht, wordt de server opgevraagd voor de aanmelding van de gebruiker die toegang heeft tot de database.

In het voorbeeld wordt ervan uitgegaan dat SQL Server en de AdventureWorks-database op de lokale computer zijn geïnstalleerd. Alle uitvoer wordt naar de browser geschreven wanneer het voorbeeld wordt uitgevoerd vanuit de browser.

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

PDO_SQLSRV voorbeeld

In het volgende voorbeeld wordt het PDO_SQLSRV-stuurprogramma gebruikt om dezelfde taak uit te voeren als het vorige voorbeeld.

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

Zie ook

Procedure: Verbinding maken met behulp van SQL Server-verificatie

Programmeerhandleiding voor de Microsoft-stuurprogramma's voor PHP voor SQL Server

Informatie over codevoorbeelden in de documentatie

Procedure: Een SQL Server-aanmelding maken

Procedure: Een databasegebruiker maken

Gebruikers, rollen en aanmeldingen beheren

User-Schema-scheidingsprincipe

Objectmachtigingen verlenen (Transact-SQL)