Bagikan melalui


Mengotorisasi akses database ke SQL Database, SQL Managed Instance, dan Azure Synapse Analytics

Berlaku untuk: Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics

Dalam artikel ini, Anda mempelajari tentang:

  • Opsi konfigurasi untuk Azure SQL Database, Azure SQL Managed Instance, dan Azure Synapse Analytics yang memungkinkan pengguna melakukan tugas administratif dan mengakses data yang disimpan dalam database ini.
  • Konfigurasi akses dan otorisasi setelah server baru awalnya dibuat.
  • Cara menambahkan login dan akun pengguna dalam master database lalu memberikan izin administratif akun ini.
  • 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 sisa artikel ini sebagai database, dan server mengacu pada server logis yang mengelola database untuk Azure SQL Database dan Azure Synapse.

Catatan

ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).

Autentikasi dan otorisasi

Autentikasi adalah proses untuk membuktikan bahwa pengguna adalah orang yang sesuai. 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:

  • Autentikasi SQL

    Dengan metode autentikasi ini, pengguna mengirimkan nama akun pengguna dan kata sandi terkait untuk membuat koneksi. Kata sandi ini disimpan dalam master database untuk akun pengguna yang ditautkan ke login atau disimpan dalam database yang berisi akun pengguna yang tidak ditautkan ke login.

    Catatan

    Azure SQL Database hanya memberlakukan kompleksitas kata sandi untuk kebijakan kata sandi. Untuk kebijakan kata sandi di Azure SQL Managed Instance, lihat Tanya Jawab Umum (FAQ) Azure SQL Managed Instance.

  • Autentikasi Microsoft Entra

    Dengan metode autentikasi ini, pengguna mengirimkan nama akun pengguna dan meminta agar layanan menggunakan informasi kredensial yang disimpan di ID Microsoft Entra (sebelumnya Azure Active Directory).

Login dan pengguna: Akun pengguna dalam database dapat dikaitkan dengan login yang disimpan dalam master database atau bisa menjadi nama pengguna yang disimpan dalam database individual.

  • Login adalah akun individual dalam master database, 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 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 paling sedikit yang diperlukan.

Login dan akun pengguna yang sudah ada setelah membuat database baru

Saat pertama kali menyebarkan Azure SQL, Anda dapat menentukan nama login dan kata sandi untuk jenis login administratif khusus, 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 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).
  • Ketika akun ini masuk ke database, akun tersebut cocok dengan akun dbo pengguna khusus (akun pengguna, yang ada di setiap database pengguna. Pengguna dbo memiliki semua izin database dalam database dan merupakan anggota db_owner peran database tetap. Peran database tetap tambahan dibahas nanti di artikel ini.

Untuk mengidentifikasi akun admin Server, buka portal Azure, dan navigasikan ke tab Properti server logis atau instans terkelola Anda:

Cuplikan layar memperlihatkan halaman Properti SQL Server tempat Anda bisa mendapatkan login admin Server dan nilai admin Microsoft Entra.

Cuplikan layar memperlihatkan halaman Properti instans terkelola SQL tempat Anda bisa mendapatkan nilai masuk dan admin Microsoft Entra.

Penting

Nama akun admin Server tidak dapat diubah setelah dibuat. Untuk mengatur ulang kata sandi untuk admin server, buka portal Azure, pilih SQL Server, pilih server dari daftar, lalu pilih Atur Ulang Kata Sandi. Untuk mengatur ulang kata sandi untuk SQL Managed Instance, buka portal Azure, pilih instans, dan pilih Reset 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 Microsoft Entra dengan izin administratif penuh

    Aktifkan autentikasi Microsoft Entra dan tambahkan admin Microsoft Entra. Satu akun Microsoft Entra dapat dikonfigurasi sebagai administrator penyebaran Azure SQL dengan izin administratif penuh. Akun ini dapat berupa akun individual atau akun grup keamanan. Admin Microsoft Entra harus dikonfigurasi jika Anda ingin menggunakan akun Microsoft Entra untuk menyambungkan ke SQL Database, SQL Managed Instance, atau Azure Synapse. Untuk informasi terperinci tentang mengaktifkan autentikasi Microsoft Entra untuk semua jenis penyebaran Azure SQL, lihat artikel berikut ini:

  • Dalam SQL Managed Instance, membuat login SQL dengan izin administratif penuh

    Catatan

    Peran dbmanager dan loginmanager tidak berkaitan dengan penyebaran Azure SQL Managed Instance.

  • Di SQL Database, buatlah login SQL dengan izin administratif terbatas

    • Buat login SQL tambahan di master database.
    • Tambahkan peran Masuk ke ##MS_DatabaseManager##tingkat server , ##MS_LoginManager## dan ##MS_DatabaseConnector## menggunakan pernyataan ALTER SERVER ROLE.

    Anggota peran database khusus master 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 tetap db_owner dan dapat masuk dan mengelola database tersebut menggunakan akun pengguna dbo. Peran ini tidak memiliki izin eksplisit di luar master database.

    Penting

    Anda tidak dapat membuat login SQL tambahan dengan izin administratif penuh di Azure SQL Database. Hanya akun admin server atau akun admin Microsoft Entra (yang dapat menjadi grup Microsoft Entra) yang dapat menambahkan atau menghapus login lain ke atau dari peran server. Ini khusus untuk Azure SQL Database.

  • Di kumpulan SQL khusus Azure Synapse, buat login SQL dengan izin administratif terbatas

    • Buat login SQL tambahan di master database.
    • Buat akun pengguna di database yang master terkait dengan login baru ini.
    • Tambahkan akun pengguna ke dbmanager, loginmanager peran, atau keduanya dalam master database menggunakan pernyataan sp_addrolemember .
  • Di kumpulan SQL tanpa server Azure Synapse, buat login SQL dengan izin administratif terbatas

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 master database. 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.

  • Buat akun pengguna

    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 Entra, Anda dapat membuat akun pengguna untuk mengautentikasi ke SQL Managed Instance tanpa mengharuskan pengguna database dibuat sebagai pengguna database mandiri.

    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 SQL, Anda harus menjaga kata sandi tetap disinkronkan 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 mandiri yang dipetakan ke identitas Microsoft Entra, Anda harus masuk menggunakan akun Microsoft Entra dalam database di Azure SQL Database. Di SQL Managed Instance, login SQL dengan sysadmin izin juga dapat membuat login atau pengguna Microsoft Entra.

Untuk contoh yang memperlihatkan cara membuat login dan pengguna, lihat:

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.

  • 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 UPDATE pada skema menyertakan izin UPDATE pada 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.

  • Saat menggunakan autentikasi Microsoft Entra, masukkan pengguna Microsoft Entra ke dalam grup keamanan Microsoft Entra. 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 untuk 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 selanjutnya