Dela via


Så här ansluter du med Windows-autentisering

Ladda ned PHP-drivrutin

Som standard använder Microsoft-drivrutiner för PHP för SQL Server Windows-autentisering för att ansluta till SQL Server. Observera att det i de flesta fall innebär att webbserverns processidentitet eller trådidentitet (om webbservern använder personifiering) används för att ansluta till servern, inte en slutanvändares identitet.

Följande punkter måste beaktas när du använder Windows-autentisering för att ansluta till SQL Server:

  • De autentiseringsuppgifter som webbserverns process (eller tråd) körs under måste mappas till en giltig SQL Server-inloggning för att upprätta en anslutning.

  • Om SQL Server och webbservern finns på olika datorer måste SQL Server konfigureras för att aktivera fjärranslutningar.

Anmärkning

Anslutningsattribut som Database och ConnectionPooling kan anges när du upprättar en anslutning. En fullständig lista över anslutningsattribut som stöds finns i Anslutningsalternativ.

Windows-autentisering bör användas för att ansluta till SQL Server när det är möjligt av följande skäl:

  • Inga autentiseringsuppgifter skickas över nätverket under autentiseringen. användarnamn och lösenord är inte inbäddade i databasanslutningssträngen. Det innebär att obehöriga användare eller angripare inte kan hämta autentiseringsuppgifterna genom att övervaka nätverket eller genom att visa anslutningssträngar i konfigurationsfiler.

  • Användare omfattas av centraliserad kontohantering. säkerhetsprinciper som förfalloperioder för lösenord, minsta längd på lösenord och kontoutelåsning efter att flera ogiltiga inloggningsbegäranden har tillämpats.

Om Windows-autentisering inte är ett praktiskt alternativ läser du Så här ansluter du med SQL Server-autentisering.

SQLSRV-exempel

Med SQLSRV-drivrutinen för Microsoft Drivers for PHP för SQL Server använder följande exempel Windows-autentisering för att ansluta till en lokal instans av SQL Server. När anslutningen har upprättats efterfrågas servern för inloggningen för den användare som har åtkomst till databasen.

Exemplet förutsätter att SQL Server och AdventureWorks-databasen är installerade på den lokala datorn. Alla utdata skrivs till webbläsaren när exemplet körs från webbläsaren.

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

PDO_SQLSRV exempel

I följande exempel används drivrutinen PDO_SQLSRV för att utföra samma uppgift som föregående exempel.

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

Se även

Så här ansluter du med SQL Server-autentisering

Programmeringsguide för Microsoft-drivrutiner för PHP för SQL Server

Om kodexempel i dokumentationen

Gör så här: Skapa en SQL Server-inloggning

Gör så här: Skapa en databasanvändare

Hantera användare, roller och inloggningar

Användarschema-separation

Bevilja objektbehörigheter (Transact-SQL)