Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini akan memandu Anda melalui dasar-dasar mengamankan kumpulan SQL khusus Anda (sebelumnya SQL DW). Secara khusus, artikel ini membuat Anda mulai menggunakan sumber daya untuk membatasi akses, melindungi data, dan memantau aktivitas menggunakan kumpulan SQL khusus (sebelumnya SQL DW).
Keamanan koneksi
Keamanan Koneksi mengacu pada cara Anda membatasi dan mengamankan koneksi ke database Anda menggunakan aturan firewall dan enkripsi koneksi.
Aturan firewall digunakan oleh server SQL logis dan databasenya untuk menolak upaya koneksi dari alamat IP yang belum disetujui secara eksplisit. Untuk mengizinkan koneksi dari alamat IP publik aplikasi atau komputer klien, Anda harus terlebih dahulu membuat aturan firewall tingkat server menggunakan portal Microsoft Azure, REST API, atau PowerShell.
Sebagai praktik terbaik, Anda harus membatasi rentang alamat IP yang diizinkan melalui firewall tingkat server Anda sebanyak mungkin. Untuk mengakses kumpulan SQL khusus Anda (sebelumnya SQL DW) dari komputer lokal Anda, pastikan firewall di jaringan Anda dan komputer lokal memungkinkan komunikasi keluar pada port TCP 1433.
Kumpulan SQL khusus (sebelumnya SQL DW) menggunakan aturan firewall IP tingkat server. Itu tidak mendukung aturan firewall IP tingkat basis data. Untuk informasi selengkapnya, lihat Aturan firewall Azure SQL Database
Koneksi ke kumpulan SQL khusus Anda (sebelumnya SQL DW) dienkripsi secara default. Mengubah pengaturan koneksi untuk menonaktifkan enkripsi diabaikan.
Otentikasi
Autentikasi mengacu pada cara Anda membuktikan identitas Anda saat menyambungkan ke database. Kumpulan SQL khusus (sebelumnya SQL DW) saat ini mendukung Autentikasi SQL Server dengan nama pengguna dan kata sandi, dan dengan ID Microsoft Entra.
Saat Anda membuat server untuk database, Anda menentukan login "admin server" dengan nama pengguna dan kata sandi. Dengan menggunakan kredensial ini, Anda dapat mengautentikasi ke database apa pun di server tersebut sebagai pemilik database, atau "dbo" melalui Autentikasi SQL Server.
Namun, sebagai praktik terbaik, pengguna organisasi Anda harus menggunakan akun lain untuk mengautentikasi. Dengan cara ini Anda dapat membatasi izin yang diberikan ke aplikasi dan mengurangi risiko aktivitas berbahaya jika kode aplikasi Anda rentan terhadap serangan injeksi SQL.
Untuk membuat pengguna Terautentikasi SQL Server, sambungkan ke database master di server Anda dengan login admin server Anda dan buat login server baru. Ada baiknya juga membuat pengguna di database master. Membuat pengguna di master memungkinkan pengguna untuk masuk menggunakan alat seperti SSMS tanpa menentukan nama database. Ini juga memungkinkan mereka menggunakan penjelajah objek untuk melihat semua database di server.
-- Connect to master database and create a login
CREATE LOGIN ApplicationLogin WITH PASSWORD = 'Str0ng_password';
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
Kemudian, sambungkan ke kumpulan SQL khusus Anda (sebelumnya SQL DW) dengan login admin server Anda dan buat pengguna database berdasarkan login server yang Anda buat.
-- Connect to the database and create a database user
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
Untuk memberi pengguna izin untuk melakukan operasi tambahan seperti membuat login atau membuat database baru, tetapkan pengguna ke Loginmanager peran dan dbmanager dalam database master.
Untuk informasi selengkapnya tentang peran tambahan ini dan mengautentikasi ke SQL Database, lihat Mengelola database dan login di Azure SQL Database. Untuk informasi selengkapnya tentang menyambungkan menggunakan ID Microsoft Entra, lihat Menyambungkan dengan menggunakan autentikasi Microsoft Entra.
Otorisasi
Otorisasi mengacu pada apa yang bisa Anda lakukan dalam database setelah Anda diautentikasi dan tersambung. Hak istimewa otorisasi ditentukan oleh keanggotaan peran dan izin. Sebagai praktik terbaik, Anda harus memberi pengguna hak istimewa paling sedikit yang diperlukan. Untuk mengelola peran, Anda dapat menggunakan prosedur tersimpan berikut:
EXEC sp_addrolemember 'db_datareader', 'ApplicationUser'; -- allows ApplicationUser to read data
EXEC sp_addrolemember 'db_datawriter', 'ApplicationUser'; -- allows ApplicationUser to write data
Akun admin server yang Anda sambungkan adalah anggota db_owner, yang memiliki wewenang untuk melakukan apa pun dalam database. Simpan akun ini untuk menyebarkan peningkatan skema dan operasi manajemen lainnya. Gunakan akun "ApplicationUser" dengan izin yang lebih terbatas untuk terhubung dari aplikasi Anda ke database dengan hak istimewa paling sedikit yang diperlukan oleh aplikasi Anda.
Ada cara untuk membatasi lebih lanjut apa yang dapat dilakukan pengguna dalam database:
- Izin Terperinci memungkinkan Anda mengontrol operasi mana yang dapat Anda lakukan pada kolom, tabel, tampilan, skema, prosedur, dan objek lain dalam database. Gunakan izin terperinci untuk memiliki kontrol terbanyak dan memberikan izin minimum yang diperlukan.
- Peran database selain db_datareader dan db_datawriter dapat digunakan untuk membuat akun pengguna aplikasi yang lebih kuat atau akun manajemen yang kurang kuat. Peran database tetap bawaan menyediakan cara mudah untuk memberikan izin, tetapi dapat mengakibatkan pemberian lebih banyak izin daripada yang diperlukan.
- Prosedur tersimpan dapat digunakan untuk membatasi tindakan yang dapat diambil pada database.
Contoh berikut memberikan akses baca ke skema yang ditentukan pengguna.
--CREATE SCHEMA Test
GRANT SELECT ON SCHEMA::Test to ApplicationUser
Mengelola database dan server dari portal Microsoft Azure atau menggunakan Azure Resource Manager API dikontrol oleh penetapan peran akun pengguna portal Anda. Untuk informasi selengkapnya, lihat Menetapkan peran Azure menggunakan portal Azure.
Enkripsi
Enkripsi Data Transparan (TDE) membantu melindungi dari ancaman aktivitas berbahaya dengan mengenkripsi dan mendekripsi data Anda saat tidak aktif. Saat Anda mengenkripsi database, cadangan terkait dan file log transaksi dienkripsi tanpa memerlukan perubahan apa pun pada aplikasi Anda. TDE mengenkripsi penyimpanan seluruh database dengan menggunakan kunci simetris yang disebut kunci enkripsi database.
Di SQL Database, kunci enkripsi database dilindungi oleh sertifikat server bawaan. Sertifikat server bawaan unik untuk setiap server. Microsoft secara otomatis memutar sertifikat ini setidaknya setiap 90 hari. Algoritma enkripsi yang digunakan adalah AES-256. Untuk deskripsi umum TDE, lihat Enkripsi Data Transparan.
Anda dapat mengenkripsi database Anda menggunakan portal Microsoft Azure atau T-SQL.
Langkah berikutnya
Untuk detail dan contoh tentang menyambungkan ke gudang Anda dengan protokol yang berbeda, lihat Menyambungkan ke kumpulan SQL khusus (sebelumnya SQL DW).