Mengotorisasi akses database ke SQL Database, SQL Managed Instance, dan Azure Synapse Analytics
BERLAKU UNTUK:
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Dalam artikel ini, Anda mempelajari tentang:
- Opsi untuk mengonfigurasi Azure SQL Database, Azure SQL Managed Instance, dan Azure Synapse Analytics untuk memungkinkan pengguna melakukan tugas administratif dan mengakses data yang disimpan dalam database ini.
- Konfigurasi akses dan otorisasi setelah membuat server baru.
- Cara menambahkan login dan akun pengguna di database master dan akun pengguna lalu memberikan izin administratif pada akun tersebut.
- Cara menambahkan akun pengguna dalam database pengguna, baik yang terkait dengan login atau sebagai akun pengguna yang termuat.
- Mengonfigurasikan akun pengguna dengan izin dalam database pengguna dengan menggunakan peran database dan izin eksplisit.
Penting
Database di Azure SQL Database, Azure SQL Managed Instance, dan Azure Synapse disebut secara kolektif di artikel ini sebagai database, dan server merujuk ke server yang mengelola database untuk Azure SQL Database dan Azure Synapse.
Autentikasi dan Otorisasi
Autentikasi adalah proses membuktikan pengguna sesuai yang mereka klaim. Pengguna tersambung ke database menggunakan akun pengguna. Saat pengguna mencoba menyambungkan ke database, mereka menyediakan akun pengguna dan informasi autentikasi. Pengguna diautentikasi menggunakan salah satu dari dua metode autentikasi berikut:
-
Dengan metode autentikasi ini, pengguna mengirimkan nama akun pengguna dan kata sandi terkait untuk membuat koneksi. Kata sandi ini disimpan dalam database master untuk akun pengguna yang ditautkan ke login atau disimpan dalam database yang berisi akun pengguna yang tidak ditautkan ke login.
Autentikasi Azure Active Directory
Dengan metode autentikasi ini, pengguna mengirimkan nama akun pengguna dan meminta agar layanan menggunakan informasi mandat yang disimpan di Microsoft Azure Active Directory (Microsoft Azure AD).
Login dan pengguna: Akun pengguna dalam database dapat dikaitkan dengan login yang disimpan dalam database master atau bisa menjadi nama pengguna yang disimpan dalam database individual.
- Login adalah akun individual dalam database master, di mana akun pengguna dalam satu atau beberapa database dapat ditautkan. Dengan login, informasi kredensial untuk akun pengguna disimpan dengan login.
- Akun pengguna adalah akun individual dalam database apa pun yang mungkin, tetapi tidak harus, ditautkan ke login. Dengan akun pengguna yang tidak ditautkan ke login, informasi kredensial disimpan di akun pengguna.
Otorisasi untuk mengakses data dan melakukan berbagai tindakan yang dikelola menggunakan peran database dan izin eksplisit. Otorisasi mengacu pada izin yang ditetapkan untuk pengguna, dan menentukan izin yang boleh dilakukan oleh pengguna. Otorisasi dikendalikan oleh keanggotaan peran database akun pengguna Anda dan izin tingkat objek. Sebagai praktik terbaik, Anda harus memberi pengguna hak istimewa seminimal yang diperlukan.
Login dan akun pengguna yang sudah ada setelah membuat database baru
Ketika Anda pertama kali menyebarkan Azure SQL, Anda menentukan login admin dan kata sandi terkait untuk login tersebut. Akun administratif ini disebut Admin server. Konfigurasi login dan pengguna berikut dalam database master dan pengguna terjadi selama penyebaran:
- Login SQL dengan hak administratif dibuat menggunakan nama login yang Anda tentukan. Login adalah akun pengguna individual untuk masuk ke SQL Database, SQL Managed Instance, dan Azure Synapse.
- Login ini diberikan izin administratif penuh pada semua database sebagai prinsipal tingkat server. Login memiliki semua izin yang tersedia dan tidak dapat dibatasi. Dalam SQL Managed Instance, login ini ditambahkan ke peran server tetap sysadmin (peran ini tidak ada di Azure SQL Database).
- Akun pengguna yang disebut
dbodibuat untuk login ini di setiap database pengguna. Pengguna dbo memiliki semua izin database dalam database dan dipetakan ke peran database tetapdb_owner. Peran database tetap tambahan dibahas nanti di artikel ini.
Untuk mengidentifikasi akun administrator untuk database, buka portal Microsoft Azure, dan navigasi ke tab Properti di server atau instans terkelola Anda.


Penting
Nama untuk login admin tidak dapat diubah setelah dibuat. Untuk mengatur ulang kata sandi untuk admin server, masuk ke portal Microsoft Azure, klik SQL Server, pilih server dari daftar, lalu klik Atur Ulang Kata Sandi. Untuk mengatur ulang kata sandi untuk SQL Managed Instance, buka portal Microsoft Azure, klik instans, dan klik Atur ulang kata sandi. Anda juga dapat menggunakan PowerShell atau Azure CLI.
Membuat login dan pengguna tambahan yang memiliki izin administratif
Pada titik ini, server atau instans terkelola Anda hanya dikonfigurasi untuk akses menggunakan satu login SQL dan akun pengguna. Untuk membuat login tambahan dengan izin administratif penuh atau parsial, Anda memiliki opsi berikut (tergantung pada mode penyebaran Anda):
Membuat akun administrator Azure Active Directory dengan izin administratif penuh
Aktifkan autentikasi Azure Active Directory dan buat login administrator Microsoft Azure AD. Satu akun Azure Active Directory dapat dikonfigurasi sebagai administrator penyebaran Azure SQL dengan izin administratif penuh. Akun ini dapat berupa akun individual atau akun grup keamanan. Administrator Microsoft Azure AD harus dikonfigurasi jika Anda ingin menggunakan akun Microsoft Azure AD untuk menyambungkan ke SQL Database, Azure SQL Managed Instance, atau Azure Synapse. Untuk informasi mendetail tentang mengaktifkan autentikasi Microsoft Azure AD untuk semua jenis penyebaran Azure SQL, lihat artikel berikut ini:
Dalam SQL Managed Instance, membuat login SQL dengan izin administratif penuh
- Membuat login SQL tambahan di database master.
- Tambahkan login ke peran server tetap sysadmin menggunakan pernyataan ALTER SERVER ROLE. Login ini akan memiliki izin administratif penuh.
- Atau, buat login Microsoft Azure AD menggunakan sintaks CREATE LOGIN.
Di SQL Database, buatlah login SQL dengan izin administratif terbatas
- Membuat login SQL tambahan di database master.
- Buatlah akun pengguna di database master yang terkait dengan login baru ini.
- Tambahkan akun pengguna ke
dbmanager, peranloginmanager, atau keduanya dalam databasemastermenggunakan pernyataan ALTER ROLE (untuk Azure Synapse, gunakan pernyataan sp_addrolemember).
Catatan
Peran
dbmanagerdanloginmanagertidak berkaitan dengan penyebaran SQL Managed Instance.Anggota peran database master khusus ini untuk Azure SQL Database memiliki wewenang untuk membuat dan mengelola database atau untuk membuat dan mengelola login. Dalam database yang dibuat oleh pengguna yang merupakan anggota peran
dbmanager, anggota dipetakan ke peran database tetapdb_ownerdan dapat masuk dan mengelola database tersebut menggunakan akun penggunadbo. Peran ini tidak memiliki izin eksplisit di luar database master.Penting
Anda tidak dapat membuat login SQL tambahan dengan izin administratif penuh di SQL Database.
Membuat akun untuk pengguna non-administrator
Anda dapat membuat akun untuk pengguna non-administratif menggunakan salah satu dari dua metode berikut:
Membuat login
Buat login SQL di database master. Kemudian buatlah akun pengguna di setiap database yang penggunanya membutuhkan akses dan kaitkan akun pengguna dengan login tersebut. Pendekatan ini lebih disukai ketika pengguna harus mengakses beberapa database dan Anda ingin membuat kata sandi tetap sinkron. Namun, pendekatan ini memiliki kompleksitas ketika digunakan dengan replikasi geografis karena login harus dibuat di server utama dan server sekunder. Untuk informasi lebih lanjut, lihat Mengonfigurasi dan mengelola keamanan Azure SQL Database untuk pemulihan lokasi geografis atau kegagalan.
Membuat akun pengguna baru
Membuat akun pengguna di database tempat pengguna membutuhkan akses (disebut juga pengguna yang termuat).
- Dengan SQL Database, Anda selalu dapat membuat akun pengguna jenis ini.
- Dengan SQL Managed Instance yang mendukung prinsipal server Microsoft Azure AD, Anda dapat membuat akun pengguna untuk mengautentikasi ke SQL Managed Instance tanpa membuat pengguna database sebagai pengguna database yang termuat.
Dengan pendekatan ini, informasi autentikasi pengguna disimpan di setiap database, dan direplikasi lokasi geografisnya ke database secara otomatis. Namun, jika akun yang sama ada di beberapa database dan Anda menggunakan Autentikasi Azure SQL, Anda harus tetap menyinkronkan kata sandi secara manual. Selain itu, jika pengguna memiliki akun di database yang berbeda dengan kata sandi yang berbeda, mengingat kata sandi tersebut dapat menjadi masalah.
Penting
Untuk membuat pengguna termuat yang dipetakan ke identitas Microsoft Azure AD, Anda harus masuk menggunakan akun Microsoft Azure AD yang merupakan administrator dalam database di Azure SQL Database. Dalam SQL Managed Instance, login SQL dengan izin sysadmin juga dapat membuat login atau pengguna Microsoft Azure AD.
Untuk contoh yang memperlihatkan cara membuat login dan pengguna, lihat:
- Membuat login untuk Azure SQL Database
- Membuat login untuk Azure SQL Managed Instance
- Membuat login untuk Azure Synapse
- Membuat pengguna
- Membuat pengguna Microsoft Azure AD yang termuat
Tip
Untuk tutorial keamanan yang menyertakan pembuatan pengguna di Azure SQL Database, lihat Tutorial: Mengamankan Azure SQL Database.
Menggunakan peran database tetap dan kustom
Setelah membuat akun pengguna dalam database, baik berdasarkan login atau sebagai pengguna yang termuat, Anda dapat mengotorisasi pengguna tersebut untuk melakukan berbagai tindakan dan mengakses data dalam database tertentu. Anda bisa menggunakan metode berikut untuk mengotorisasi akses:
Peran database tetap
Tambahkan akun pengguna ke peran database tetap. Ada 9 peran database tetap, masing-masing dengan sekumpulan izin yang ditentukan. Peran database tetap yang paling umum adalah: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter, dan db_denydatareader. db_owner biasanya digunakan untuk memberikan izin penuh hanya ke beberapa pengguna. Peran database tetap lainnya berguna untuk mendapatkan database sederhana dalam pengembangan dengan cepat, tetapi tidak direkomendasikan untuk sebagian besar database produksi. Misalnya, peran database tetap db_datareader memberikan akses baca ke setiap tabel dalam database, yang mana lebih dari yang diperlukan.
Untuk menambahkan pengguna ke peran database tetap:
- Di Azure SQL Database, gunakan pernyataan ALTER ROLE. Misalnya, lihat Contoh ALTER ROLE
- Azure Synapse, gunakan pernyataan sp_addrolemember. Misalnya, lihat contoh sp_addrolemember.
Peran database kustom
Buat peran database kustom menggunakan pernyataan CREATE ROLE. Peran kustom memungkinkan Anda membuat peran database yang ditentukan pengguna sendiri dan dengan hati-hati memberikan izin pada setiap peran seminimal yang diperlukan untuk kebutuhan bisnis. Kemudian Anda dapat menambahkan pengguna ke peran kustom. Ketika pengguna adalah anggota dari beberapa peran, mereka menggabungkan izin dari mereka semua.
Memberikan izin secara langsung
Beri izin akun pengguna secara langsung. Ada lebih dari 100 izin yang dapat diberikan atau ditolak secara individual dalam SQL Database. Izin-izin ini banyak yang berlapis. Misalnya, izin
UPDATEpada skema menyertakan izinUPDATEpada setiap tabel dalam skema tersebut. Seperti pada kebanyakan sistem izin, penolakan mengambil alih pemberian izin. Karena sifatnya berlapis dan banyaknya jumlah izin, perlu adanya studi yang cermat untuk merancang sistem izin yang sesuai untuk melindungi database Anda dengan benar. Mulai dengan daftar izin di Izin (Mesin Database) dan tinjau grafik ukuran poster dari izin tersebut.
Menggunakan grup
Manajemen akses yang efisien menggunakan izin yang ditetapkan untuk grup keamanan Direktori Aktif dan peran tetap atau kustom, bukan untuk pengguna individual.
Ketika menggunakan autentikasi Azure Active Directory, masukkan pengguna Azure Active Directory ke dalam grup keamanan Azure Active Directory. Membuat pengguna database yang termuat untuk grup. Tambahkan satu atau beberapa pengguna database sebagai anggota ke peran database kustom atau bawaan dengan izin khusus yang sesuai dengan grup pengguna tersebut.
Saat menggunakan autentikasi SQL, buatlah pengguna database yang termuat dalam database. Tempatkan satu atau beberapa pengguna database ke dalam peran database kustom dengan izin tertentu yang sesuai dengan grup pengguna tersebut.
Catatan
Anda juga bisa menggunakan grup untuk pengguna database yang tidak termuat.
Anda harus membiasakan diri dengan fitur berikut yang bisa digunakan untuk membatasi atau meningkatkan izin:
- Peniruan dan penandatanganan modul dapat digunakan untuk meningkatkan izin dengan aman untuk sementara.
- Keamanan Tingkat Baris dapat digunakan membatasi baris mana yang dapat diakses pengguna.
- Data Masking dapat digunakan untuk membatasi paparan data sensitif.
- Prosedur yang disimpan dapat digunakan untuk membatasi tindakan yang dapat dilakukan pada database.
Langkah berikutnya
Untuk gambaran umum semua Azure SQL Database dan fitur keamanan SQL Managed Instance, lihat Gambaran umum keamanan.