Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Postupy: Vytvoření přihlášení k SQL Serveru
Postupy: Vytvoření uživatele databáze