Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
Procedure: Een SQL Server-aanmelding maken
Procedure: Een databasegebruiker maken