Bagikan melalui


Autentikasi di SQL Server

Mengunduh ADO.NET

SQL Server mendukung dua mode autentikasi, mode autentikasi Windows dan mode campuran.

  • Autentikasi Windows adalah default, dan sering disebut sebagai keamanan terintegrasi karena model keamanan SQL Server ini terintegrasi erat dengan Windows. Akun pengguna dan grup Windows tertentu dipercaya untuk masuk ke SQL Server. Pengguna Windows yang telah diautentikasi tidak perlu menyajikan kredensial tambahan.

  • Mode campuran mendukung autentikasi baik oleh Windows maupun oleh SQL Server. Pasangan nama pengguna dan kata sandi dipertahankan dalam SQL Server.

Penting

Sebaiknya gunakan autentikasi Windows sedapat mungkin. Autentikasi Windows menggunakan serangkaian pesan terenkripsi untuk mengautentikasi pengguna di SQL Server. Ketika login SQL Server digunakan, nama login SQL Server dan kata sandi terenkripsi diteruskan di seluruh jaringan, yang membuatnya kurang aman.

Dengan autentikasi Windows, pengguna sudah masuk ke Windows dan tidak perlu masuk secara terpisah ke SQL Server. Berikut ini SqlConnection.ConnectionString menentukan autentikasi Windows tanpa mengharuskan pengguna untuk memberikan nama pengguna atau kata sandi.

"Server=MSSQL1;Database=AdventureWorks;Integrated Security=true;Encrypt=True;"

Catatan

Login berbeda dari pengguna database. Anda harus memetakan login atau grup Windows ke pengguna atau peran database dalam operasi terpisah. Anda kemudian memberikan izin kepada pengguna atau peran untuk mengakses objek database.

Skenario autentikasi

Autentikasi Windows biasanya merupakan pilihan terbaik dalam situasi berikut:

  • Ada pengendali domain.

  • Aplikasi dan database berada di komputer yang sama.

  • Anda menggunakan instans SQL Server Express atau LocalDB.

Login SQL Server sering digunakan dalam situasi berikut:

  • Jika Anda memiliki grup kerja.

  • Pengguna terhubung dari domain yang berbeda dan tidak tepercaya.

  • Aplikasi internet, seperti ASP.NET.

Catatan

Menentukan autentikasi Windows tidak menonaktifkan login SQL Server. Gunakan pernyataan ALTER LOGIN DISABLE Transact-SQL untuk menonaktifkan login SQL Server dengan hak istimewa tinggi.

Jenis login

SQL Server mendukung tiga jenis login:

  • Akun pengguna Windows lokal atau akun domain tepercaya. SQL Server mengandalkan Windows untuk mengautentikasi akun pengguna Windows.

  • Grup Windows. Memberikan akses ke grup Windows memberikan akses ke semua login pengguna Windows yang merupakan anggota grup.

  • Masuk SQL Server. SQL Server menyimpan nama pengguna dan hash kata sandi dalam database master, dengan menggunakan metode autentikasi internal untuk memverifikasi upaya masuk.

Catatan

SQL Server menyediakan login yang dibuat dari sertifikat atau kunci asimetris yang hanya digunakan untuk penandatanganan kode. Mereka tidak dapat digunakan untuk menyambungkan ke SQL Server.

Autentikasi mode campuran

Jika Anda harus menggunakan autentikasi mode campuran, Anda harus membuat login SQL Server, yang disimpan di SQL Server. Anda kemudian harus menyediakan nama pengguna dan kata sandi SQL Server pada waktu proses.

Penting

SQL Server diinstal dengan login SQL Server bernama sa (singkatan dari "administrator sistem"). Tetapkan kata sandi yang kuat untuk sa login dan jangan gunakan sa login di aplikasi Anda. Login sa memetakan ke sysadmin peran server tetap, yang memiliki kredensial administratif yang tidak dapat dibatalkan di seluruh server. Tidak ada batasan potensi kerusakan jika penyerang mendapatkan akses sebagai administrator sistem. Semua anggota grup Windows BUILTIN\Administrators (grup administrator lokal) adalah anggota peran secara default, tetapi dapat dihapus dari peran tersebut sysadmin .

Penting

Menggabungkan string koneksi dari input pengguna dapat membuat Anda rentan terhadap serangan injeksi string koneksi. SqlConnectionStringBuilder Gunakan untuk membuat string koneksi yang valid secara sinonis pada waktu proses.

Sumber daya eksternal

Untuk informasi selengkapnya, lihat sumber berikut ini:

Sumber daya Deskripsi
Kepala sekolah Menjelaskan login dan prinsip keamanan lainnya di SQL Server.

Langkah berikutnya