Autentikasi dalam 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 harus 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 SQL Server login digunakan, SQL Server nama login 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 untuk 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.

SQL Server login 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 SQL Server masuk. Gunakan pernyataan ALTER LOGIN DISABLE Transact-SQL untuk menonaktifkan login SQL Server yang sangat istimewa.

Jenis login

SQL Server mendukung tiga jenis login:

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

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

  • SQL Server masuk. 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 dalam SQL Server. Anda kemudian harus menyediakan nama pengguna dan kata sandi SQL Server pada durasi.

Penting

SQL Server menginstal 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. Peta sa login 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 sintaksis pada durasi.

Sumber daya eksternal

Untuk informasi selengkapnya, lihat sumber berikut ini:

Sumber daya Deskripsi
Principals Menjelaskan login dan prinsip keamanan lainnya dalam SQL Server.

Langkah berikutnya