Bagikan melalui


Cara menyiapkan kontrol akses pada objek yang disinkronkan di kumpulan SQL tanpa server

Di Azure Synapse Analytics, database dan tabel Spark dibagikan dengan kumpulan SQL tanpa server. Database Lake, Parquet, dan tabel yang didukung CSV yang dibuat dengan Spark secara otomatis tersedia di kumpulan SQL tanpa server. Fitur ini memungkinkan penggunaan kumpulan SQL tanpa server untuk menjelajahi dan mengkueri data yang disiapkan dengan menggunakan kumpulan Spark. Pada diagram di bawah ini, Anda dapat melihat gambaran umum arsitektur tingkat tinggi untuk menggunakan fitur ini. Pertama, Azure Synapse Pipelines memindahkan data dari penyimpanan lokal (atau lainnya) ke Azure Data Lake Storage. Spark sekarang dapat memperkaya data, dan membuat database, dan tabel yang disinkronkan ke Synapse SQL tanpa server. Nantinya, pengguna dapat menjalankan kueri ad-hoc di atas data yang diperkaya atau menyajikannya ke Power BI misalnya.

Perkaya di Spark, sajikan dengan diagram SQL.

Akses administrator penuh (sysadmin)

Setelah database dan tabel ini disinkronkan dari Spark ke kumpulan SQL tanpa server, tabel eksternal ini di kumpulan SQL tanpa server dapat digunakan untuk mengakses data yang sama. Namun, objek di kumpulan SQL tanpa server bersifat baca-saja karena menjaga konsistensi dengan objek kumpulan Spark. Batasan ini hanya membuat pengguna dengan peran Synapse SQL Administrator atau Administrator Synapse dapat mengakses objek ini di kumpulan SQL tanpa server. Jika pengguna non-admin mencoba menjalankan kueri pada database/tabel yang disinkronkan, mereka akan menerima kesalahan seperti: External table '<table>' is not accessible because content of directory cannot be listed. meskipun mereka memiliki akses ke data pada akun penyimpanan yang mendasar.

Karena database yang disinkronkan di kumpulan SQL tanpa server bersifat baca-saja, database tersebut tidak dapat dimodifikasi. Membuat pengguna, atau memberikan izin lain akan gagal jika dicoba. Untuk membaca database yang disinkronkan, seseorang harus memiliki izin tingkat server istimewa (seperti sysadmin). Batasan ini juga ada pada tabel eksternal di kumpulan SQL tanpa server saat menggunakan tabel Azure Synapse Link for Dataverse dan database lake.

Akses non-admin ke database yang disinkronkan

Pengguna yang perlu membaca data dan membuat laporan biasanya tidak memiliki akses administrator penuh (sysadmin). Pengguna ini biasanya adalah analis data yang hanya perlu membaca dan menganalisis data menggunakan tabel yang ada. Mereka tidak perlu membuat objek baru.

Pengguna dengan izin minimal harus dapat:

  • Menyambungkan ke database yang direplikasi dari Spark
  • Pilih data melalui tabel eksternal dan akses data ADLS yang mendasar.

Setelah menjalankan skrip kode di bawah ini, ini akan memungkinkan pengguna non-admin untuk memiliki izin tingkat server untuk terhubung ke database apa pun. Ini juga akan memungkinkan pengguna untuk melihat data dari semua objek tingkat skema, seperti tabel atau tampilan. Keamanan akses data dapat dikelola pada lapisan penyimpanan.

-- Creating Azure AD login (same can be achieved for Azure AD app)
    CREATE LOGIN [login@contoso.com] FROM EXTERNAL PROVIDER;
    go;
    
    GRANT CONNECT ANY DATABASE to [login@contoso.com];
    GRANT SELECT ALL USER SECURABLES to [login@contoso.com];
    GO;

Nota

Pernyataan ini harus dijalankan pada database master, karena ini semua adalah izin tingkat server.

Setelah membuat login dan memberikan izin, pengguna dapat menjalankan kueri di atas tabel eksternal yang disinkronkan. Mitigasi ini juga dapat diterapkan ke grup keamanan Microsoft Entra.

Lebih banyak keamanan pada objek dapat dikelola melalui skema tertentu dan mengunci akses ke skema tertentu. Solusinya memerlukan DDL tambahan. Untuk skenario ini, Anda dapat membuat database, skema, dan tampilan tanpa server baru yang akan menunjuk ke data tabel Spark di ADLS.

Akses ke data pada akun penyimpanan dapat dikelola melalui ACL atau peran Pemilik/Pembaca/Kontributor Data Blob Penyimpanan reguler untuk pengguna/grup Microsoft Entra. Untuk Prinsipal Layanan (aplikasi Microsoft Entra), pastikan Anda menggunakan pengaturan ACL.

Nota

  • Jika Anda ingin melarang penggunaan OPENROWSET di atas data, Anda dapat menggunakan DENY ADMINISTER BULK OPERATIONS to [login@contoso.com]; Untuk informasi selengkapnya, kunjungi izin DENY Server.
  • Jika Anda ingin mencegah penggunaan skema tertentu, Anda dapat menggunakan DENY SELECT ON SCHEMA::[schema_name] TO [login@contoso.com]; Untuk informasi selengkapnya, kunjungi Penolakan Izin Skema.

Langkah berikutnya

Untuk informasi selengkapnya, lihat Autentikasi SQL.