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 ve výchozím nastavení používají ověřování systému Windows pro připojení k SQL Serveru. Je důležité si uvědomit, že ve většině scénářů to znamená, že identita procesu webového serveru nebo identita vlákna (pokud webový server používá zosobnění) se používá k připojení k serveru, nikoli identitě koncového uživatele.
Při použití Windows Authentication k připojení k SQL Serveru je třeba zvážit následující body:
Přihlašovací údaje, na kterých běží proces webového serveru (nebo vlákno), musí být mapované na platné přihlášení k SQL Serveru, aby bylo možné navázat připojení.
Pokud jsou SQL Server a webový server na různých počítačích, musí být SQL Server nakonfigurovaný tak, aby povoloval vzdálená připojení.
Poznámka:
Atributy připojení, jako je databáze a fond připojení, se dají nastavit při navázání připojení. Úplný seznam podporovaných atributů připojení najdete v tématu Možnosti připojení.
Ověřování systému Windows by se mělo použít k připojení k SQL Serveru, kdykoli je to možné z následujících důvodů:
Během ověřování se přes síť nepředávají žádné přihlašovací údaje; uživatelská jména a hesla nejsou vložena do připojovacího řetězce databáze. To znamená, že uživatelé se zlými úmysly nebo útočníci nemohou získat přihlašovací údaje monitorováním sítě nebo zobrazením připojovacích řetězců v konfiguračních souborech.
Uživatelé podléhají centralizované správě účtů; zásady zabezpečení, jako jsou období vypršení platnosti hesla, minimální délka hesla a uzamčení účtu po vynucení několika neplatných žádostí o přihlášení.
Pokud ověřování systému Windows není praktická možnost, přečtěte si téma Postupy: Připojení pomocí ověřování SYSTÉMU SQL Server.
Příklad SQLSRV
Pomocí ovladače SQLSRV ovladačů Microsoft pro PHP pro SQL Server používá následující příklad ověřování systému Windows pro připojení k místní instanci SQL Serveru. Po navázání připojení se server dotazuje na přihlášení uživatele, který přistupuje k databázi.
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)";
$connectionInfo = array( "Database"=>"AdventureWorks");
/* Connect using Windows 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
Následující příklad používá ovladač PDO_SQLSRV k provedení stejné úlohy jako předchozí ukázka.
<?php
try {
$conn = new PDO( "sqlsrv:Server=(local);Database=AdventureWorks", NULL, NULL);
$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 );
}
?>
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
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í