Bagikan melalui


Cara: Sambungkan Menggunakan Autentikasi Windows

Unduh driver PHP

Secara default, Driver Microsoft untuk PHP untuk SQL Server menggunakan Autentikasi Windows untuk menyambungkan ke SQL Server. Penting untuk dicatat bahwa dalam sebagian besar skenario, ini berarti bahwa identitas proses server Web atau identitas utas (jika server Web menggunakan peniruan identitas) digunakan untuk terhubung ke server, bukan identitas pengguna akhir.

Poin-poin berikut harus dipertimbangkan ketika Anda menggunakan Autentikasi Windows untuk menyambungkan ke SQL Server:

  • Kredensial tempat proses server Web (atau utas) berjalan harus dipetakan ke login SQL Server yang valid untuk membuat koneksi.

  • Jika SQL Server dan server Web berada di komputer yang berbeda, SQL Server harus dikonfigurasi untuk mengaktifkan koneksi jarak jauh.

Catatan

Atribut koneksi seperti Database dan ConnectionPooling dapat diatur saat Anda membuat koneksi. Untuk daftar lengkap atribut koneksi yang didukung, lihat Opsi Koneksi.

Autentikasi Windows harus digunakan untuk menyambungkan ke SQL Server jika memungkinkan karena alasan berikut:

  • Tidak ada kredensial yang diteruskan melalui jaringan selama autentikasi; nama pengguna dan kata sandi tidak disematkan dalam string koneksi database. Ini berarti bahwa pengguna atau penyerang jahat tidak dapat memperoleh kredensial dengan memantau jaringan atau dengan melihat string koneksi di dalam file konfigurasi.

  • Pengguna tunduk pada manajemen akun terpusat; kebijakan keamanan seperti periode kedaluwarsa kata sandi, panjang kata sandi minimum, dan penguncian akun setelah beberapa permintaan masuk yang tidak valid diberlakukan.

Jika Autentikasi Windows bukan opsi praktis, lihat Cara: Menyambungkan Menggunakan Autentikasi SQL Server.

Contoh SQLSRV

Menggunakan driver SQLSRV Driver Microsoft untuk PHP untuk SQL Server, contoh berikut menggunakan Autentikasi Windows untuk menyambungkan ke instans lokal SQL Server. Setelah koneksi dibuat, server dikueri untuk masuk pengguna yang mengakses database.

Contohnya mengasumsikan bahwa SQL Server dan database AdventureWorks diinstal di komputer lokal. Semua output ditulis ke browser ketika contoh dijalankan dari browser.

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

contoh PDO_SQLSRV

Contoh berikut menggunakan driver PDO_SQLSRV untuk menyelesaikan tugas yang sama dengan sampel sebelumnya.

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

Lihat juga

Cara: Sambungkan Menggunakan Autentikasi SQL Server

Panduan Pemrograman untuk Driver Microsoft untuk PHP untuk SQL Server

Tentang Contoh Kode dalam Dokumentasi

Cara: Membuat Login SQL Server

Cara: Membuat Pengguna Database

Mengelola Pengguna, Peran, dan Login

Pemisahan Skema Pengguna

Memberikan Izin Objek (Transact-SQL)