Megosztás:


Útmutató: Csatlakozás SQL Server-hitelesítéssel

PHP-illesztőprogram letöltése

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

SUSER_SNAME (Transact-SQL)

Útmutató: SQL Server-bejelentkezés létrehozása

Útmutató: Adatbázis-felhasználó létrehozása

Felhasználók, szerepkörök és bejelentkezések kezelése

User-Schema elkülönítése

Objektumengedélyek megadása (Transact-SQL)