Bagikan melalui


Cara: Sambungkan Menggunakan Autentikasi SQL Server

Unduh driver PHP

Driver Microsoft untuk PHP untuk SQL Server mendukung Autentikasi SQL Server saat Anda tersambung ke SQL Server.

Autentikasi SQL Server harus digunakan hanya ketika Autentikasi Windows tidak dimungkinkan. Untuk informasi tentang menyambungkan dengan Autentikasi Windows, lihat Cara: Menyambungkan Menggunakan Autentikasi Windows.

Poin berikut harus dipertimbangkan saat Anda menggunakan Autentikasi SQL Server untuk menyambungkan ke SQL Server:

  • Autentikasi Mode Campuran SQL Server harus diaktifkan di server.

  • ID pengguna dan kata sandi (atribut koneksi UID dan PWD di driver SQLSRV) harus diatur ketika Anda mencoba membuat koneksi. ID pengguna dan kata sandi harus dipetakan ke pengguna dan kata sandi SQL Server yang valid.

Catatan

Kata sandi yang berisi kurung kurawal penutup (}) harus diloloskan dengan kurung kurawal penutup kedua. Misalnya, jika kata sandi SQL Server adalah "pass}word", nilai atribut koneksi PWD harus diatur ke "pass}}word".

Tindakan pencegahan berikut harus diambil saat Anda menggunakan Autentikasi SQL Server untuk menyambungkan ke SQL Server:

  • Lindungi (enkripsi) kredensial yang diteruskan melalui jaringan dari server Web ke database. Kredensial dienkripsi secara default dimulai di SQL Server 2005. Untuk keamanan tambahan, atur atribut Enkripsi koneksi ke "aktif" untuk mengenkripsi semua data yang dikirim ke server.

Catatan

Mengatur atribut Enkripsi koneksi ke "aktif" dapat menyebabkan performa yang lebih lambat karena enkripsi data dapat intensif secara komputasi.

  • Jangan sertakan nilai untuk atribut koneksi UID dan PWD dalam teks biasa dalam skrip PHP. Nilai-nilai ini harus disimpan dalam direktori khusus aplikasi dengan izin terbatas yang sesuai.

  • Hindari penggunaan akun sa . Petakan aplikasi ke pengguna database yang memiliki hak istimewa yang diinginkan dan gunakan kata sandi yang kuat.

Catatan

Atribut koneksi selain ID pengguna dan kata sandi dapat diatur saat Anda membuat koneksi. Untuk daftar lengkap atribut koneksi yang didukung, lihat Opsi Koneksi.

Contoh SQLSRV

Contoh berikut menggunakan driver SQLSRV dengan Autentikasi SQL Server untuk menyambungkan ke instans lokal SQL Server. Nilai untuk atribut koneksi UID dan PWD yang diperlukan diambil dari file teks khusus aplikasi, uid.txt dan pwd.txt, di direktori C:\AppData. Setelah koneksi dibuat, server dikueri untuk memverifikasi login pengguna.

Contoh 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)";  
  
/* 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);  
?>  

contoh PDO_SQLSRV

Sampel ini menggunakan driver PDO_SQLSRV untuk menunjukkan cara menyambungkan dengan Autentikasi SQL Server.

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

Lihat Juga

Cara: Menyambungkan Menggunakan Autentikasi SQL Server

Panduan Pemrograman untuk Driver Microsoft untuk PHP untuk SQL Server

Tentang Contoh Kode dalam Dokumentasi

SUSER_SNAME (T-SQL)

Cara: Membuat Login SQL Server

Cara: Membuat Pengguna Database

Mengelola Pengguna, Peran, dan Login

Pemisahan Skema Pengguna

Memberikan Izin Objek (Transact-SQL)