Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az SQL Serverhez készült PHP Microsoft Drivers támogatja az SQL Server-hitelesítést az SQL Serverhez való csatlakozáskor.
Az SQL Server-hitelesítést csak akkor szabad használni, ha a Windows-hitelesítés nem lehetséges. A Windows-hitelesítéssel való csatlakozással kapcsolatos információkért lásd: Csatlakozás Windows-hitelesítés használatával.
A következő szempontokat kell figyelembe venni, amikor SQL Server-hitelesítést használ az SQL Serverhez való csatlakozáshoz:
Az SQL Server vegyes módú hitelesítését engedélyezni kell a kiszolgálón.
A felhasználói azonosítót és a jelszót (az SQLSRV-illesztő UID és PWD kapcsolati attribútumait) be kell állítani a kapcsolat létrehozásakor. A felhasználói azonosítónak és a jelszónak érvényes SQL Server-felhasználóra és jelszóra kell megfeleltetnie.
Megjegyzés:
A záró kapcsos zárójelet (}) tartalmazó jelszavakat egy második záró kapcsos zárójeltel kell megszűrni. Ha például az SQL Server jelszava "pass}word", a PWD kapcsolati attribútum értékét "pass}}word" értékre kell állítani.
Az alábbi óvintézkedéseket kell megtennie, amikor SQL Server Authentication-t használ, hogy csatlakozzon az SQL Serverhez.
- Védje (titkosítja) a hálózaton a webkiszolgálóról az adatbázisba továbbított hitelesítő adatokat. Az SQL Server 2005-től kezdődően a hitelesítő adatok alapértelmezés szerint titkosítva vannak. A biztonság érdekében állítsa a Titkosítás kapcsolat attribútumot "be" értékre a kiszolgálónak küldött összes adat titkosításához.
Megjegyzés:
A Titkosítási kapcsolat attribútum "be" értékre állítása lassabb teljesítményt okozhat, mivel az adattitkosítás számításilag intenzív lehet.
NE adjon meg értékeket a UID és a PWD kapcsolatattribútumokhoz egyszerű szövegben PHP-szkriptekben. Ezeket az értékeket egy alkalmazásspecifikus könyvtárban kell tárolni a megfelelő korlátozott engedélyekkel.
Kerülje az sa-fiók használatát. Rendelje hozzá az alkalmazást egy adatbázis-felhasználóhoz, aki rendelkezik a kívánt jogosultságokkal, és erős jelszót használ.
Megjegyzés:
A kapcsolat létrehozásakor a felhasználói azonosító és a jelszó mellett a kapcsolatattribútumok is beállíthatók. A támogatott kapcsolatattribútumok teljes listáját a Kapcsolat beállításai című témakörben találja.
SQLSRV-példa
Az alábbi példa az SQLSRV-illesztőt használja az SQL Server-hitelesítéssel az SQL Server helyi példányához való csatlakozáshoz. A szükséges UID és PWD kapcsolat-attribútumok értékei az alkalmazásspecifikus szövegfájlokból, uid.txt és pwd.txt találhatók a C:\AppData könyvtárban. A kapcsolat létrejötte után a rendszer lekérdezi a kiszolgálót a felhasználói bejelentkezés ellenőrzéséhez.
A példa feltételezi, hogy az SQL Server és az AdventureWorks adatbázis telepítve van a helyi számítógépen. A rendszer minden kimenetet a böngészőbe ír, amikor a példa a böngészőből fut.
<?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 példa
Ez a minta a PDO_SQLSRV illesztővel mutatja be, hogyan csatlakozhat az SQL Server-hitelesítéshez.
<?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;
?>
Lásd még:
Útmutató: Csatlakozás SQL Server-hitelesítéssel
MICROSOFT Drivers for PHP az SQL Serverhez programozási útmutató
A dokumentációban szereplő példakódokkal kapcsolatos
Útmutató: SQL Server-bejelentkezés létrehozása
Útmutató: Adatbázis-felhasználó létrehozása