Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Otentikasi SQL Server vs. Otentikasi Windows:Yang mana yang digunakan dan kapan

Otentikasi adalah komponen penting dari setiap strategi keamanan. Hari ini, kita akan membahas otentikasi SQL Server dan bagaimana pentingnya mengamankan lingkungan SQL Server Anda, dan peran yang dimainkan otentikasi Windows.

Membuat koneksi

Semuanya dimulai dengan koneksi. Untuk membuat koneksi database yang sukses, klien atau aplikasi memerlukan informasi berikut:

  • Nama domain yang sepenuhnya memenuhi syarat SQL Server
  • Nama instance
  • Nomor port
  • Kredensial (nama pengguna dan sandi) untuk autentikasi

Misalnya, Anda menggunakan perbankan online. Untuk mengakses akun Anda, Anda harus memasukkan kredensial untuk tujuan otentikasi. Bank mengidentifikasi Anda saat Anda memberikan kredensial yang valid dan mengizinkan akses ke layanannya setelah verifikasi.

Demikian pula, saat masuk ke SQL Server, pengguna perlu menentukan kredensial yang valid sehingga SQL Server dapat mengotentikasi identitas mereka dan memberikan akses yang sesuai.

SQL Server menyediakan dua mode otentikasi server:

  • Otentikasi Windows
  • Mode autentikasi SQL Server dan Windows (mode campuran)

Anda dapat menentukan metode otentikasi ini selama penginstalan SQL Server, atau mengubahnya nanti melalui restart. Sangat penting bagi administrator database untuk memahami perbedaan antara metode autentikasi ini dan menerapkannya sesuai kebutuhan spesifik organisasi mereka.

Mari selami lebih jauh untuk memahami kelebihan dan kekurangan otentikasi SQL Server dan Windows.

Ikhtisar otentikasi SQL Server

Administrator database membuat login SQL dan memberikan izin yang sesuai bagi pengguna untuk mengotentikasi diri mereka sendiri ke SQL Server. Pengguna perlu menentukan login dan kata sandi saat menghubungkan ke SQL Server seperti yang ditunjukkan di bawah ini.

Kredensial pengguna divalidasi melalui informasi yang disimpan dalam database master. Anda dapat menerapkan kebijakan berikut untuk login SQL Server.

  • Terapkan kebijakan sandi :Administrator dapat memeriksa opsi ini untuk menerapkan kebijakan kata sandi Windows untuk login SQL Server. Ini termasuk menentukan panjang dan kerumitan sandi.
  • Terapkan masa berlaku sandi :Anda dapat menerapkan usia maksimum kata sandi. Kata sandi akan kedaluwarsa dan perlu diubah sesuai dengan kriteria usia.
  • Pengguna harus mengubah sandi pada login berikutnya :Administrator memberikan kata sandi selama pembuatan login SQL. Setelah pengguna masuk dengan kredensial mereka, mereka perlu menentukan kata sandi baru, dan administrator tidak akan mengetahui kata sandi baru ini.

Catatan:Semua konfigurasi ini berada pada level login SQL individual. Oleh karena itu, jika Anda perlu membuat beberapa login SQL, Anda harus mengonfigurasi setiap akun dengan kebijakan yang diperlukan.

Kami tidak dapat mengaktifkan hanya otentikasi SQL. Untuk mengaktifkannya, gunakan opsi otentikasi campuran yang mencakup otentikasi Windows dan SQL.

Kekurangan otentikasi SQL Server

Ada beberapa batasan dan kerugian menggunakan otentikasi SQL Server saja.

  • Pengguna perlu mengingat kredensial login SQL dan menyediakannya dalam string koneksi setiap kali mereka terhubung ke SQL Server. Jika Anda memiliki beberapa SQL Server, mungkin sulit bagi pengguna untuk melacak sandi untuk setiap instance.
  • SQL Server menyimpan kata sandi di database master dalam bentuk terenkripsi (hash). Hacker dapat mencuri informasi dengan mengakses database. Karena kredensial terenkripsi ini harus diteruskan melalui jaringan, ini dapat meningkatkan kemungkinan kredensial pengguna dicuri.
  • Anda tidak dapat menerapkan kebijakan akun tambahan (disesuaikan) dengan login otentikasi SQL Server.
  • Ini meningkatkan tugas manajemen login untuk administrator database. Administrator database tidak memiliki konsol manajemen pusat untuk mengelola login di semua instance.

Misalkan Anda memiliki 500+ instance SQL dan pengguna memerlukan akses ke semua instance ini. Dalam hal ini, akan menjadi tugas yang membosankan bagi administrator database untuk terhubung ke setiap instance dan membuat login pengguna. Demikian pula, jika seseorang meninggalkan organisasi, administrator database perlu mengetahui login SQL individu tersebut dan menghapusnya dari semua instance ini. Ini bisa menjadi proses yang sangat memakan waktu.

  • Anda mungkin mendapatkan masalah pengguna yatim piatu saat memindahkan database ke instance yang berbeda, dan itu mungkin terjadi karena ketidakcocokan SID di database master dan pengguna pada instance baru.
  • Anda perlu mengelola kebijakan keamanan untuk setiap login SQL. Anda tidak dapat menentukan kebijakan universal untuk semua akun di organisasi Anda. Untuk jejak basis data yang besar, adalah tugas yang sulit untuk menentukan kebijakan untuk setiap login individu.

Kasus penggunaan terbaik untuk otentikasi SQL Server

  • Ini dapat membantu aplikasi lama dan perangkat lunak pihak ketiga menghubungkan database jika tidak mendukung autentikasi Windows (AD).
  • Anda mungkin mengharuskan pengguna dari domain yang tidak tepercaya untuk terhubung ke SQL Server. Dalam hal ini, aplikasi dapat menentukan login SQL di string koneksi dan terhubung ke database.
  • Untuk menghubungkan instance SQL mandiri yang bukan bagian dari grup Active Directory (AD).
  • Ini dapat membantu SQL Server untuk mendukung aplikasi web di mana pengguna membuat identitas mereka sendiri.
  • Administrator berbagi ID umum untuk menyambung ke SQL Server menggunakan otentikasi Active Directory dalam beberapa kasus. Penyatuan koneksi ini bukanlah praktik yang baik. Dalam hal ini, Anda dapat membuat login terpisah untuk setiap pengguna dan terhubung ke database menggunakan kredensial mereka.
  • Secara default, jika Anda menerapkan Database SQL di cloud, yaitu Azure SQL Database atau AWS RDS, Anda diberikan kredensial login untuk otentikasi SQL Server. Nanti, jika diperlukan, Anda dapat mengonfigurasi autentikasi berbasis AD.
  • Anda dapat menggunakannya untuk terhubung dari sistem lintas operasi seperti Linux dan macOS.

Ikhtisar otentikasi Windows

Dalam otentikasi Windows, pengguna harus terlebih dahulu mengotentikasi dirinya dalam Active Directory. SQL Server mengotentikasi pengguna melalui token utama Windows di OS. Dengan itu, SQL Server tidak meminta kata sandi untuk validasi identitas. Oleh karena itu, Windows mengonfirmasi identitas pengguna untuk otentikasi. SQL Server tidak menyimpan kredensial dalam otentikasi Windows. Koneksi yang menggunakan autentikasi Windows disebut koneksi tepercaya atau terintegrasi.

Catatan:Otentikasi Windows adalah metode autentikasi default saat Anda menginstal SQL Server.

Keuntungan autentikasi Windows

  • Otentikasi Windows adalah cara yang aman untuk menyambung ke SQL Server, dan menggunakan token dan SPN untuk tujuan otentikasi menggunakan protokol otentikasi Kerberos. Oleh karena itu, ia tidak mengirim kata sandi ke seluruh jaringan, dan melindungi pencurian kata sandi di seluruh jaringan.
  • SQL Server tidak menyimpan kredensial pengguna.
  • Ini menggunakan protokol keamanan Kerberos, dan Anda dapat menerapkan kebijakan kata sandi seperti kata sandi yang rumit, penguncian akun, dan kedaluwarsa kata sandi. Kebijakan kata sandi ini dapat diterapkan di tingkat organisasi di semua server. Oleh karena itu, Anda dapat mengontrol kebijakan keamanan pengguna di tingkat organisasi, bukan di tingkat login individual seperti dengan autentikasi SQL Server.
  • Otentikasi Windows memungkinkan pemisahan tugas. Tim Active Directory (AD) mengelola pengguna AD. Padahal, DBA menambahkan pengguna AD dalam instance SQL dan memberikan izin yang sesuai.
  • Direktori Aktif membantu membuat grup Windows. Tim AD dapat menambahkan beberapa orang yang memerlukan akses yang sama dalam grup AD. Kemudian, Anda dapat menambahkan grup dalam instance SQL dan memberikan izin di tingkat grup. Oleh karena itu, jika orang baru bergabung, setelah dia menjadi bagian dari grup AD, akses database secara otomatis diberikan di seluruh server tempat grup AD ini berada. Demikian pula, setelah pengguna pindah dari organisasi dan ID mereka dihapus dari grup AD ini, mereka tidak dapat lagi mengakses database.

Kekurangan otentikasi Windows

  • Jika Anda hanya menggunakan otentikasi Windows untuk SQL Server, semua pengguna harus menjadi bagian dari Active Directory.
  • DBA tidak memiliki kontrol atas login dan grup AD.
  • Keanggotaan grup AD tidak diketahui oleh DBA. Anda tidak mendapatkan pemberitahuan jika pengguna ditambahkan atau dihapus dari grup AD.

Ringkasan

Posting blog ini menguraikan komponen kunci otentikasi SQL Server dan otentikasi Windows. Saya harap ini membantu Anda memahami perbedaan antara metode autentikasi ini untuk memutuskan mana yang paling sesuai untuk bisnis dan keadaan Anda.

Otentikasi SQL Server dapat digunakan pada mesin yang sama dengan SQL Server atau pada koneksi jarak jauh. Jika Anda bekerja di lingkungan Active Directory, autentikasi Windows disarankan untuk digunakan. Jika Anda bekerja di lingkungan non-Active Directory, Anda dapat menggunakan otentikasi SQL Server untuk koneksi database.

Otentikasi Windows memang memberikan lebih banyak keamanan dan fleksibilitas untuk mengelola login di SQL Server. Oleh karena itu, Anda harus menggunakannya bila memungkinkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pembaruan Massal di C#

  2. Deteksi rentang tanggal berurutan menggunakan SQL

  3. Bagaimana Anda memeriksa apakah IDENTITY_INSERT diatur ke ON atau OFF di SQL Server?

  4. Cara melihat log transaksi di SQL Server 2008

  5. Fungsi COALESCE di TSQL