Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft-drivrutiner för PHP för SQL Server stöder SQL Server-autentisering när du ansluter till SQL Server.
SQL Server-autentisering bör endast användas när Windows-autentisering inte är möjligt. Information om hur du ansluter med Windows-autentisering finns i Så här ansluter du med Windows-autentisering.
Följande punkter måste beaktas när du använder SQL Server-autentisering för att ansluta till SQL Server:
SQL Server-autentisering i blandat läge måste vara aktiverat på servern.
Användar-ID och lösenord (UID - och PWD-anslutningsattribut i SQLSRV-drivrutinen) måste anges när du försöker upprätta en anslutning. Användar-ID och lösenord måste mappas till en giltig SQL Server-användare och ett giltigt lösenord.
Anmärkning
Lösenord som innehåller en avslutande klammerparentes (}) måste vara undantagna med en andra avslutande klammerparentes. Om SQL Server-lösenordet till exempel är "pass}word" måste värdet för PWD-anslutningsattributet anges till "pass}}word".
Följande försiktighetsåtgärder bör vidtas när du använder SQL Server-autentisering för att ansluta till SQL Server:
- Skydda (kryptera) autentiseringsuppgifterna som skickas över nätverket från webbservern till databasen. Autentiseringsuppgifter krypteras som standard från och med SQL Server 2005. För ökad säkerhet anger du attributet Kryptera anslutning till "på" för att kryptera alla data som skickas till servern.
Anmärkning
Om du anger attributet Kryptera anslutning till "på" kan det orsaka långsammare prestanda eftersom datakryptering kan vara beräkningsintensivt.
Inkludera inte värden för anslutningsattributen UID och PWD i oformaterad text i PHP-skript. Dessa värden ska lagras i en programspecifik katalog med lämpliga begränsade behörigheter.
Undvik användning av sa-kontot . Mappa programmet till en databasanvändare som har önskade privilegier och använder ett starkt lösenord.
Anmärkning
Anslutningsattribut förutom användar-ID och lösenord kan anges när du upprättar en anslutning. En fullständig lista över anslutningsattribut som stöds finns i Anslutningsalternativ.
SQLSRV-exempel
I följande exempel används SQLSRV-drivrutinen med SQL Server-autentisering för att ansluta till en lokal instans av SQL Server. Värdena för de nödvändiga UID- och PWD-anslutningsattributen hämtas från programspecifika textfiler, uid.txt och pwd.txt, i katalogen C:\AppData. När anslutningen har upprättats efterfrågas servern för att verifiera användarens inloggning.
Exemplet förutsätter att SQL Server och AdventureWorks-databasen är installerade på den lokala datorn. Alla utdata skrivs till webbläsaren när exemplet körs från webbläsaren.
<?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 exempel
Det här exemplet använder drivrutinen PDO_SQLSRV för att visa hur du ansluter med SQL Server-autentisering.
<?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;
?>
Se även
Så här ansluter du med SQL Server-autentisering
programmeringsguide för Microsoft-drivrutiner för PHP för SQL Server
Om kodexempel i dokumentationen
Gör så här: Skapa en SQL Server-inloggning
Gör så här: Skapa en databasanvändare