Sdílet prostřednictvím


Postupy: Připojení pomocí ověřování SQL Serveru

Stáhnout ovladač PHP

Ovladače Microsoftu pro PHP pro SQL Server podporují ověřování SQL Serveru při připojení k SQL Serveru.

Ověřování SQL Serveru by se mělo používat jenom v případě, že ověřování systému Windows není možné. Informace o připojení pomocí ověřování systému Windows naleznete v tématu Postupy: Připojení pomocí ověřování systému Windows.

Při použití ověřování serveru SQL Server k připojení k SQL Serveru je potřeba zvážit následující body:

  • Na serveru musí být povolené ověřování ve smíšeném režimu SQL Serveru.

  • Při pokusu o navázání připojení je nutné nastavit ID uživatele a heslo (atributy připojení UID a PWD v ovladači SQLSRV). ID uživatele a heslo musí odpovídat platnému uživateli a heslu SQL Serveru.

Poznámka:

Hesla, která obsahují pravou složenou závorku (}), je třeba escapovat druhou pravou složenou závorkou. Pokud je například heslo SQL Serveru "pass}word", musí být hodnota atributu připojení PWD nastavena na "pass}}word".

Při připojování k SQL Serveru pomocí ověřování SQL Serveru byste měli provést následující opatření:

  • Chraňte (zašifrujte) přihlašovací údaje předávané přes síť z webového serveru do databáze. Přihlašovací údaje se ve výchozím nastavení šifrují od SQL Serveru 2005. Pokud chcete přidat zabezpečení, nastavte atribut připojení Encrypt na zapnuto, aby se šifrují všechna data odesílaná na server.

Poznámka:

Nastavení atributu šifrovaného připojení na zapnuto může způsobit pomalejší výkon, protože šifrování dat může být výpočetně náročné.

  • Nezahrnujte hodnoty pro atributy připojení UID a PWD ve formátu prostého textu ve skriptech PHP. Tyto hodnoty by měly být uloženy v adresáři specifickém pro aplikaci s příslušnými omezenými oprávněními.

  • Nepoužívejte účet sa . Namapujte aplikaci na uživatele databáze, který má požadovaná oprávnění a používá silné heslo.

Poznámka:

Atributy připojení kromě ID uživatele a hesla je možné nastavit při navázání připojení. Úplný seznam podporovaných atributů připojení najdete v tématu Možnosti připojení.

Příklad SQLSRV

Následující příklad používá ovladač SQLSRV s ověřováním SQL Serveru pro připojení k místní instanci SQL Serveru. Hodnoty požadovaných atributů připojení UID a PWD jsou převzaty z textových souborů specifických pro aplikaci, uid.txt a pwd.txtv adresáři C:\AppData . Po navázání připojení se server dotazuje na ověření přihlášení uživatele.

Příklad předpokládá, že SQL Server a databáze AdventureWorks jsou nainstalovány v místním počítači. Při spuštění příkladu z prohlížeče se do prohlížeče zapíše veškerý výstup.

<?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);  
?>  

příklad PDO_SQLSRV

Tato ukázka používá ovladač PDO_SQLSRV k předvedení připojení pomocí ověřování SQL Serveru.

<?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;   
?>  

Viz také

Postupy: Připojení pomocí ověřování SQL Serveru

Průvodce programováním pro ovladače Microsoftu pro PHP pro SQL Server

O příkladech kódu v dokumentaci

SUSER_SNAME (Transact-SQL)

Postupy: Vytvoření přihlášení k SQL Serveru

Postupy: Vytvoření uživatele databáze

Správa uživatelů, rolí a přihlášení

User-Schema oddělení

Udělení oprávnění objektu (Transact-SQL)