Delen via


Procedure: Verbinding maken met behulp van SQL Server-verificatie

PHP-stuurprogramma downloaden

De Microsoft-stuurprogramma's voor PHP voor SQL Server ondersteunen SQL Server-verificatie wanneer u verbinding maakt met SQL Server.

SQL Server-verificatie mag alleen worden gebruikt wanneer Windows-verificatie niet mogelijk is. Zie Hoe: Verbinden met Windows-verificatie voor meer informatie over het maken van verbinding met Windows-verificatie.

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

  • Verificatie in de gemengde modus van SQL Server moet zijn ingeschakeld op de server.

  • De gebruikers-id en het wachtwoord (UID - en PWD-verbindingskenmerken in het SQLSRV-stuurprogramma) moeten worden ingesteld wanneer u probeert een verbinding tot stand te brengen. De gebruikers-id en het wachtwoord moeten worden toegewezen aan een geldige SQL Server-gebruiker en -wachtwoord.

Opmerking

Wachtwoorden die een gesloten accolade (}) bevatten, moeten worden "escaped" door een tweede accolade toe te voegen. Als het SQL Server-wachtwoord bijvoorbeeld 'pass}word' is, moet de waarde van het PWD-verbindingskenmerk worden ingesteld op 'pass}}word'.

De volgende voorzorgsmaatregelen moeten worden genomen wanneer u SQL Server-verificatie gebruikt om verbinding te maken met SQL Server:

  • Beveilig (versleutel) de referenties die via het netwerk worden doorgegeven van de webserver naar de database. Referenties worden standaard versleuteld vanaf SQL Server 2005. Voor extra beveiliging stelt u het kenmerk Verbinding versleutelen in op 'aan' om alle gegevens te versleutelen die naar de server worden verzonden.

Opmerking

Als u het kenmerk Versleutelen instelt op 'aan', kan dit leiden tot tragere prestaties, omdat gegevensversleuteling rekenintensief kan zijn.

  • Neem geen waarden op voor de verbindingskenmerken UID en PWD in tekst zonder opmaak in PHP-scripts. Deze waarden moeten worden opgeslagen in een toepassingsspecifieke map met de juiste beperkte machtigingen.

  • Vermijd het gebruik van het sa-account . Wijs de toepassing toe aan een databasegebruiker met de gewenste bevoegdheden en gebruik een sterk wachtwoord.

Opmerking

Verbindingskenmerken naast de gebruikers-id en het wachtwoord kunnen worden ingesteld wanneer u een verbinding tot stand brengt. Zie Verbindingsopties voor een volledige lijst met ondersteunde verbindingskenmerken.

SQLSRV-voorbeeld

In het volgende voorbeeld wordt het SQLSRV-stuurprogramma met SQL Server-verificatie gebruikt om verbinding te maken met een lokaal exemplaar van SQL Server. De waarden voor de vereiste UID - en PWD-verbindingskenmerken worden opgehaald uit toepassingsspecifieke tekstbestanden, uid.txt en pwd.txt, in de map C:\AppData . Nadat de verbinding tot stand is gebracht, wordt de server opgevraagd om de aanmelding van de gebruiker te verifiëren.

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)";  
  
/* Get UID and PWD from application-specific files.  */  
$uid = file_get_contents("C:\AppData\uid.txt");  
$pwd = file_get_contents("C:\AppData\pwd.txt");  
$connectionInfo = array( "UID"=>$uid,  
                         "PWD"=>$pwd,  
                         "Database"=>"AdventureWorks");  
  
/* Connect using SQL Server 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 dit voorbeeld wordt het PDO_SQLSRV-stuurprogramma gebruikt om te laten zien hoe u verbinding maakt met SQL Server-verificatie.

<?php  
   $serverName = "(local)";   
   $database = "AdventureWorks";  
  
   // Get UID and PWD from application-specific files.   
   $uid = file_get_contents("C:\AppData\uid.txt");  
   $pwd = file_get_contents("C:\AppData\pwd.txt");  
  
   try {  
      $conn = new PDO( "sqlsrv:server=$serverName;Database = $database", $uid, $pwd);   
      $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 );   
   }  
  
   // Free statement and connection resources.   
   $stmt = null;   
   $conn = null;   
?>  

Zie ook

Procedure: Verbinding maken met behulp van SQL Server-verificatie

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

Over codevoorbeelden in de documentatie

SUSER_SNAME (Transact-SQL)

Procedure: Een SQL Server-aanmelding maken

Procedure: Een databasegebruiker maken

Gebruikers, rollen en aanmeldingen beheren

User-Schema scheiding

Objectmachtigingen verlenen (Transact-SQL)