Mengamankan SQL Server Anda

SQL Server adalah sistem manajemen database relasional (RDBMS) yang menyimpan dan mengelola data bisnis penting untuk aplikasi, analitik, dan pelaporan. Karena sering berisi informasi sensitif, seperti catatan pelanggan, data keuangan, dan kekayaan intelektual, mengamankan SQL Server sangat penting untuk melindungi organisasi Anda dari pelanggaran data, akses tidak sah, dan risiko kepatuhan.

Artikel ini menyediakan panduan tentang cara terbaik mengamankan SQL Server Anda.

Keamanan jaringan

Mengamankan akses jaringan ke SQL Server membantu mencegah koneksi yang tidak sah, mengurangi paparan serangan, dan memastikan hanya sumber tepercaya yang dapat menjangkau database Anda.

Pengelolaan identitas

Kontrol identitas dan autentikasi yang kuat membantu memastikan hanya pengguna dan aplikasi yang berwenang yang dapat mengakses sumber daya SQL Server.

  • Gunakan autentikasi Windows atau autentikasi Microsoft Entra: Lebih memilih autentikasi Windows atau autentikasi Microsoft Entra daripada autentikasi SQL untuk manajemen identitas terpusat dan kontrol siklus hidup akun yang lebih mudah. Untuk informasi selengkapnya, lihat Pilih mode autentikasi.

  • Gunakan akun layanan terkelola grup (gMSA) untuk layanan: Gunakan gMSA untuk mengelola kredensial akun layanan secara otomatis dan aman. Untuk informasi selengkapnya, lihat ringkasan Akun LayananGroup-Managed.

  • Menerapkan kebijakan kata sandi yang kuat: Jika Anda menggunakan autentikasi SQL, memerlukan kata sandi kompleks yang tidak dapat dengan mudah ditebak dan tidak digunakan untuk akun lain. Memperbarui kata sandi secara teratur dan menerapkan kebijakan Direktori Aktif. Untuk informasi selengkapnya, lihat Kata sandi yang kuat.

  • Gunakan pengguna database mandiri jika sesuai: Pertimbangkan pengguna database mandiri untuk aplikasi yang memerlukan autentikasi tingkat database tanpa memerlukan login tingkat server. Untuk informasi selengkapnya, lihat Pengguna database tertahan.

Akses istimewa

Membatasi dan memantau akses istimewa membantu mencegah perubahan yang tidak sah dan mengurangi dampak akun yang disusupi.

  • Berikan izin minimum yang diperlukan: Tetapkan tingkat hak istimewa terendah yang diperlukan untuk setiap pengguna atau layanan. Tinjau dan sesuaikan izin secara teratur untuk mempertahankan hak istimewa paling sedikit. Untuk informasi selengkapnya, lihat Mulai menggunakan izin mesin database.

  • Pisahkan administrator database (DBA) dan sysadmin peran: Hindari memberikan sysadmin hak untuk semua DBA. Gunakan izin SERVER KONTROL jika memungkinkan, karena menghormati DENY izin dan memungkinkan kontrol yang lebih terperinci. Pertimbangkan pemisahan tugas yang membatasi akses ke komputer virtual, kemampuan untuk masuk ke sistem operasi, kemampuan untuk memodifikasi log kesalahan dan audit, dan kemampuan untuk menginstal aplikasi dan/atau fitur. Untuk informasi selengkapnya, lihat Izin (Mesin Database).

  • Memantau dan mengaudit aktivitas istimewa: Mengaktifkan audit untuk melacak perubahan yang dilakukan oleh akun istimewa dan meninjau log secara teratur untuk aktivitas yang mencurigakan. Untuk informasi selengkapnya, lihat Audit SQL Server (Mesin Basis Data).

  • Menerapkan pemisahan peran: Menempatkan pengguna Direktori Aktif di grup AD, memetakan grup AD ke peran SQL Server, dan memberikan peran SQL Server izin minimum yang diperlukan oleh aplikasi. Untuk informasi selengkapnya, lihat Mulai menggunakan izin mesin database.

Perlindungan data

Melindungi data saat disimpan dan sedang dalam transmisi sangat penting untuk mencegah pengungkapan atau perubahan yang tidak sah.

  • Mengenkripsi informasi sensitif dengan Always Encrypted: Gunakan Always Encrypted dan Always Encrypted dengan enklave aman untuk melindungi data sensitif di SQL Server. Lebih suka enkripsi acak untuk keamanan yang lebih kuat. Untuk informasi selengkapnya, lihat Always Encrypted.

  • Gunakan Transparent Data Encryption (TDE) untuk file database: Aktifkan TDE untuk mengenkripsi file database, cadangan, dan tempdb, melindungi data jika media fisik disusupi. Untuk informasi selengkapnya, lihat Enkripsi Data Transparan (TDE).

  • Menutupi data sensitif dengan Masking Data Dinamis (DDM): Gunakan DDM untuk mengaburkan data sensitif dalam hasil kueri saat enkripsi tidak dimungkinkan. Untuk informasi selengkapnya, lihat Masking Data Dinamis.

  • Memberikan izin tingkat kolom: Batasi akses ke kolom sensitif dengan memberikan SELECTizin , , REFERENCESatau UPDATE hanya untuk pengguna yang berwenang. Untuk informasi selengkapnya, lihat IZIN GRANT.

  • Gunakan Row-Level Security (RLS) untuk membatasi akses data: Terapkan RLS untuk memastikan pengguna hanya melihat data yang relevan dengan mereka. Gunakan SESSION_CONTEXT untuk aplikasi tingkat menengah tempat pengguna berbagi akun SQL. Untuk informasi selengkapnya, lihat KeamananRow-Level.

  • Menggabungkan fitur keamanan untuk perlindungan maksimum: Gunakan Row-Level Security bersama dengan Always Encrypted atau Dynamic Data Masking untuk memaksimalkan postur keamanan organisasi Anda. Untuk informasi selengkapnya, lihat praktik terbaik keamananRow-Level.

Pengelogan dan deteksi ancaman

Pengelogan dan pemantauan komprehensif membantu mendeteksi ancaman, menyelidiki insiden, dan memenuhi persyaratan kepatuhan.

  • Mengaktifkan dan mengonfigurasi Audit SQL Server: Akses audit dan perubahan pada data dan konfigurasi sensitif di tingkat server dan database. Pertimbangkan untuk mengaudit tabel dan kolom dengan data sensitif yang memiliki langkah-langkah keamanan yang diterapkan padanya. Tinjau log audit secara teratur, terutama untuk tabel yang berisi informasi sensitif di mana langkah-langkah keamanan lengkap tidak dimungkinkan. Untuk informasi selengkapnya, lihat Audit SQL Server (Mesin Basis Data).

  • Gunakan ledger di SQL Server: Aktifkan ledger untuk membuat catatan perubahan yang tidak dapat diubah pada data sensitif, memberikan pengelogan yang jelas. Untuk informasi selengkapnya, lihat Mengonfigurasi database ledger.

Pencadangan dan pemulihan

Proses pencadangan dan pemulihan yang andal melindungi data Anda dari kehilangan karena kegagalan, bencana, atau serangan.

Penilaian keamanan dan mitigasi ancaman

Menilai lingkungan SQL Server Anda secara teratur membantu mengidentifikasi kerentanan dan meningkatkan postur keamanan Anda.

  • Batasi fitur yang diaktifkan untuk mengurangi permukaan serangan: Aktifkan hanya fitur SQL Server yang diperlukan untuk lingkungan Anda. Untuk informasi selengkapnya, lihat konfigurasi luas permukaan.

  • Jalankan penilaian kerentanan: Gunakan Penilaian Kerentanan SQL di SSMS untuk menemukan dan mengatasi potensi kerentanan database. Untuk informasi selengkapnya, lihat Penilaian Kerentanan SQL.

  • Mengklasifikasikan dan memberi label data sensitif: Gunakan Penemuan dan Klasifikasi Data SQL untuk mengidentifikasi dan memberi label data sensitif untuk perlindungan dan kepatuhan yang lebih baik. Untuk informasi selengkapnya, lihat SQL Data Discovery and Classification.

  • Tinjau dan mitigasi ancaman umum: Lindungi dari injeksi SQL, serangan saluran samping, brute force, semprotan kata sandi, dan ransomware dengan mengikuti praktik yang direkomendasikan untuk validasi input, patching, dan kontrol akses. Untuk informasi selengkapnya, lihat Injeksi SQL dan serangan Ransomware.

  • Menerapkan keamanan pertahanan mendalam: Gunakan beberapa kemampuan keamanan yang ditargetkan pada cakupan keamanan yang berbeda untuk memberikan perlindungan komprehensif terhadap berbagai ancaman. Untuk informasi selengkapnya, lihat Praktik terbaik keamanan SQL Server.