Mengelola izin pengguna di kumpulan SQL tanpa server Azure Synapse

Selesai

Untuk mengamankan data, Azure Storage menerapkan model kontrol akses yang mendukung kontrol akses berbasis peran Azure (Azure RBAC) dan daftar kontrol akses (ACL) seperti Antarmuka Sistem Operasi Portabel untuk Unix (POSIX)

Anda dapat menghubungkan perwakilan keamanan dengan tingkat akses untuk file dan direktori. Hubungan tersebut akan terekam dalam daftar kontrol akses (ACL). Setiap file dan direktori di akun penyimpanan Anda memiliki daftar kontrol akses. Ketika perwakilan keamanan mencoba operasi pada file atau direktori, pemeriksaan ACL menentukan apakah prinsip keamanan (pengguna, grup, perwakilan layanan, atau identitas terkelola) memiliki tingkat izin yang benar untuk melakukan operasi.

Terdapat dua jenis daftar kontrol akses:

  • Akses ACL

    Mengontrol akses ke suatu obyek. File dan direktori keduanya memiliki ACL akses.

  • ACL default

    ACL default adalah templat ACL yang terkait dengan direktori yang menentukan ACL akses untuk setiap item anak yang dibuat di bawah direktori tersebut. File tidak memiliki ACL default.

Baik ACL akses dan ACL default memiliki struktur yang sama.

Izin pada objek kontainer adalah Baca, Tulis, dan Jalankan, serta mereka dapat digunakan pada file dan direktori seperti yang diperlihatkan dalam tabel berikut:

Tingkat izin

Izin Arsip Direktori
Baca (R) Dapat membaca konten file Mengharuskan Baca dan Jalankan untuk mencantumkan konten direktori
Tulis (W) Dapat menulis atau menambahkan ke file Membutuhkan Tulis dan Jalankan untuk membuat item anak dalam direktori
Jalankan(X) Tidak berarti apa-apa dalam konteks Data Lake Storage Gen2 Diperlukan untuk melintasi item anak dari direktori

Panduan dalam menyiapkan ACL

Selalu gunakan grup keamanan Microsoft Entra sebagai prinsipal yang ditetapkan dalam entri ACL. Tolak kesempatan untuk secara langsung menugaskan pengguna individu atau perwakilan layanan. Menggunakan struktur ini akan memungkinkan Anda untuk menambahkan dan menghapus pengguna atau perwakilan layanan tanpa menerapkan kembali ACL ke seluruh struktur direktori. Sebagai gantinya, Anda dapat menambahkan atau menghapus pengguna dan perwakilan layanan dari grup keamanan Microsoft Entra yang sesuai.

Ada banyak cara untuk menyiapkan grup. Misalnya, bayangkan Anda memiliki direktori bernama /LogData yang menyimpan data log yang dihasilkan oleh server Anda. Azure Data Factory (ADF) menyerap data ke dalam folder tersebut. Pengguna tertentu dari tim teknik layanan akan mengunggah log dan mengelola pengguna lain dari folder ini, serta berbagai kluster Databricks akan menganalisis log dari folder tersebut.

Untuk mengaktifkan aktivitas ini, Anda dapat membuat grup LogsWriter dan grup LogsReader. Kemudian, Anda dapat menetapkan izin sebagai berikut:

  • Tambahkan grup LogsWriter ke ACL direktori /LogData dengan izin rwx.
  • Tambahkan grup LogsReader ke ACL direktori /LogData dengan izin r-x.
  • Tambahkan objek perwakilan layanan atau Managed Service Identity (MSI) untuk ADF ke grup Penulis Log.
  • Tambahkan pengguna di tim teknik layanan ke grup LogsWriter.
  • Tambahkan objek perwakilan layanan atau MSI untuk Databricks ke grup LogsReader.

Jika pengguna di tim teknik layanan meninggalkan perusahaan, Anda bisa menghapusnya dari grup LogsWriter. Jika Anda tidak menambahkan pengguna tersebut ke grup, tetapi sebagai gantinya, Anda menambahkan entri ACL khusus untuk pengguna tersebut, Anda harus menghapus entri ACL tersebut dari direktori /LogData . Anda juga harus menghapus entri dari semua subdirektori dan file di seluruh hierarki direktori direktori /LogData .

Peran yang diperlukan untuk pengguna kumpulan SQL tanpa server

Untuk pengguna yang hanya memerlukan akses baca, Anda harus menetapkan peran bernama Storage Blob Data Reader.

Untuk pengguna yang memerlukan akses baca/tulis , Anda harus menetapkan peran bernama Kontributor Data Blob Penyimpanan. Akses Baca/Tulis diperlukan jika pengguna harus memiliki akses untuk membuat tabel eksternal sebagai pilihan (CETAS).

Catatan

Jika pengguna memiliki peran Pemilik atau Kontributor, peran tersebut tidak cukup. Azure Data Lake Storage gen 2 memiliki peran super yang harus ditetapkan.

Izin tingkat database

Untuk memberikan akses yang lebih terperinci ke pengguna, Anda harus menggunakan sintaks Transact-SQL untuk membuat login dan pengguna.

Untuk memberikan akses ke pengguna ke database kumpulan SQL tanpa server tunggal, ikuti langkah-langkah pada contoh ini:

  1. Buat LOGIN

    use master
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. Buat USER

    use yourdb -- Use your DB name
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Menambahkan USER ke anggota peran yang ditentukan

    use yourdb -- Use your DB name
    alter role db_datareader 
    Add member alias -- Type USER name from step 2
    -- You can use any Database Role which exists 
    -- (examples: db_owner, db_datareader, db_datawriter)
    -- Replace alias with alias of the user you would like to give access and domain with the company domain you are using.
    

Izin tingkat server

  1. Untuk memberikan akses penuh pada pengguna ke semua database kumpulan SQL tanpa server, ikuti langkah pada contoh ini:

    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];