Bagikan melalui


Autentikasi dalam database SQL di Microsoft Fabric

Berlaku untuk:Database SQL di Microsoft Fabric

Artikel ini menjelaskan autentikasi untuk database SQL.

Seperti jenis item Microsoft Fabric lainnya, database SQL mengandalkan autentikasi Microsoft Entra.

Agar berhasil mengautentikasi ke database SQL, pengguna Microsoft Entra, perwakilan layanan, atau grup mereka, harus memiliki izin Baca item untuk database di Fabric. Untuk informasi tentang cara memberikan akses identitas Microsoft Entra ke ruang kerja Fabric atau database tertentu, lihat Kontrol akses Fabric.

Untuk menemukan string koneksi ke database SQL Anda di Fabric, lihat Menyambungkan ke database SQL Anda di Microsoft Fabric.

Catatan

Untuk mengaktifkan perwakilan layanan agar terhubung ke Fabric dan ke database SQL, Anda juga perlu mengaktifkan perwakilan Layanan dapat menggunakan pengaturan penyewa Fabric API Fabric. Untuk mempelajari cara mengaktifkan pengaturan penyewa, lihat Pengaturan Penyewa Fabric.

Menyambungkan ke database SQL menggunakan autentikasi Microsoft Entra

Anda bisa menyambungkan ke database menggunakan autentikasi Microsoft Entra dengan:

Aplikasi dan alat harus meningkatkan driver ke versi yang mendukung autentikasi Microsoft Entra dan menambahkan kata kunci mode autentikasi di string koneksi SQL mereka, seperti ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal, atau ActiveDirectoryPassword.

Membuat pengguna database untuk identitas Microsoft Entra

Jika Anda berencana untuk mengonfigurasi kontrol akses SQL dengan Transact-SQL, Anda harus terlebih dahulu membuat pengguna database yang sesuai dengan identitas Microsoft Entra Anda - pengguna, perwakilan layanan, atau grup mereka - dengan CREATE USER (Transact-SQL).

Membuat pengguna database tidak diperlukan jika Anda menggunakan kontrol akses Fabric (peran ruang kerja atau izin item). Anda tidak perlu membuat pengguna saat mengelola peran tingkat database SQL dari portal Fabric - portal secara otomatis membuat pengguna saat diperlukan.

Membuat pengguna database saat tersambung sebagai pengguna Microsoft Entra

Saat tersambung ke database Anda sebagai pengguna Microsoft Entra, Anda harus menggunakan CREATE USER klausul FROM EXTERNAL PROVIDER untuk membuat pengguna untuk perwakilan Microsoft Entra. FROM EXTERNAL PROVIDER memvalidasi nama utama yang ditentukan dengan Microsoft Entra, mengambil pengidentifikasi utama (ID objek pengguna atau grup, ID aplikasi, atau ID klien), dan menyimpan pengidentifikasi sebagai pengidentifikasi keamanan pengguna (SID) dalam metadata SQL. Anda harus menjadi anggota peran Pembaca Direktori di Microsoft Entra saat menggunakan FROM EXTERNAL PROVIDER klausa. Contoh skrip T-SQL berikut ini digunakan FROM EXTERNAL PROVIDER untuk membuat pengguna berdasarkan pengguna Microsoft Entra, perwakilan layanan di Microsoft Entra, atau grup di Microsoft Entra.

-- Create a user for a Microsoft Entra user
CREATE USER [alice@contoso.com] FROM EXTERNAL PROVIDER;
-- Create a user for a service principal in Microsoft Entra
CREATE USER [HRApp] FROM EXTERNAL PROVIDER;
-- Create a user for a group in Microsoft Entra
CREATE USER [HR] FROM EXTERNAL PROVIDER; 

Membuat pengguna database saat tersambung sebagai perwakilan layanan Microsoft Entra

Saat aplikasi terhubung ke database dengan perwakilan layanan, aplikasi harus mengalami masalah CREATE USER dengan klausul SID dan TYPE untuk membuat pengguna untuk perwakilan Microsoft Entra. Nama utama yang ditentukan tidak divalidasi di Microsoft Entra. Ini adalah tanggung jawab aplikasi (pengembang aplikasi) untuk memberikan nama yang valid dan SID yang valid dan jenis objek pengguna.

Jika prinsipal yang ditentukan adalah pengguna atau grup di Microsoft Entra, SID harus menjadi ID objek pengguna atau grup tersebut di Microsoft Entra. Jika perwakilan yang ditentukan adalah perwakilan layanan di Microsoft Entra, SID harus berupa ID aplikasi (ID klien) dari perwakilan layanan di Microsoft Entra. ID objek dan ID aplikasi (ID klien) yang diperoleh dari Microsoft Entra harus dikonversi ke biner(16).

Nilai TYPE argumen harus:

  • E - jika perwakilan Microsoft Entra yang ditentukan adalah pengguna atau perwakilan layanan.
  • X - jika perwakilan Microsoft Entra yang ditentukan adalah grup.

Contoh skrip T-SQL berikut membuat pengguna database untuk pengguna Microsoft Entra, bernama bob@contoso.com, mengatur SID pengguna baru ke ID objek pengguna Microsoft Entra. Pengidentifikasi unik ID objek pengguna dikonversi lalu digabungkan menjadi CREATE USER pernyataan. Ganti <unique identifier sid> dengan ID objek pengguna di Microsoft Entra.

DECLARE @principal_name SYSNAME = 'bob@contoso.com';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- user's object ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);

-- Construct command: CREATE USER [@principal_name] WITH SID = @castObjectId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = E;'
EXEC (@cmd);

Contoh berikut membuat pengguna database untuk perwakilan layanan Microsoft Entra, bernama HRApp, mengatur SID pengguna baru ke ID klien perwakilan layanan di Microsoft Entra.

DECLARE @principal_name SYSNAME = 'HRApp';
DECLARE @clientId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's client ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castClientId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @clientId), 1);

-- Construct command: CREATE USER [@principal_name] WITH SID = @castClientId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castClientId + ', TYPE = E;'
EXEC (@cmd);

Contoh berikut membuat pengguna database untuk grup Microsoft Entra, bernama HR, mengatur SID pengguna baru ke ID objek grup.

DECLARE @group_name SYSNAME = 'HR';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's object ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);

-- Construct command: CREATE USER [@groupName] WITH SID = @castObjectId, TYPE = X;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);

Batasan

  • ID Microsoft Entra adalah satu-satunya database SQL penyedia identitas di Fabric yang mendukung. Secara khusus, autentikasi SQL tidak didukung.
  • Login (prinsipal server) tidak didukung.