Aracılığıyla paylaş


Microsoft Fabric'te SQL veritabanında kimlik doğrulaması

Şunlar için geçerlidir:Microsoft Fabric'te SQL veritabanı

Bu makalede SQL veritabanları için kimlik doğrulaması açıklanmaktadır.

Diğer Microsoft Fabric öğe türlerinde olduğu gibi SQL veritabanları da Microsoft Entra kimlik doğrulamasını kullanır.

SQL veritabanında başarılı bir şekilde kimlik doğrulaması yapmak için, Bir Microsoft Entra kullanıcısı, hizmet sorumlusu veya grubu, Doku'daki veritabanı için Öğe okuma iznine sahip olmalıdır. Bir Doku çalışma alanına veya belirli bir veritabanına Microsoft Entra kimliği erişimi verme hakkında bilgi için bkz . Doku erişim denetimleri.

Doku'da SQL veritabanınıza bağlantı dizesi bulmak için bkz. Microsoft Fabric'te SQL veritabanınıza bağlanma.

Not

Hizmet sorumlularının Doku'ya ve SQL veritabanlarına bağlanmasını sağlamak için, Hizmet sorumlularının Doku API'leri Doku kiracı ayarını kullanabileceğini de etkinleştirmeniz gerekir. Kiracı ayarlarını etkinleştirmeyi öğrenmek için bkz . Doku Kiracı ayarları.

Microsoft Entra kimlik doğrulamasını kullanarak SQL veritabanına bağlanma

Aşağıdakilerle Microsoft Entra kimlik doğrulamasını kullanarak bir veritabanına bağlanabilirsiniz:

Uygulamalar ve araçlar, sürücüleri Microsoft Entra kimlik doğrulamasını destekleyen sürümlere yükseltmeli ve SQL bağlantı dizesi , ActiveDirectoryServicePrincipalveya ActiveDirectoryPasswordgibi ActiveDirectoryInteractivebir kimlik doğrulama modu anahtar sözcüğü eklemelidir.

Microsoft Entra kimlikleri için veritabanı kullanıcıları oluşturma

Transact-SQL ile SQL erişim denetimlerini yapılandırmayı planlıyorsanız, öncelikle CREATE USER (Transact-SQL) ile Microsoft Entra kimliklerinize (kullanıcılar, hizmet sorumluları veya grupları) karşılık gelen veritabanı kullanıcıları oluşturmanız gerekir.

Doku erişim denetimlerini (çalışma alanı rolleri veya öğe izinleri) kullanıyorsanız veritabanı kullanıcıları oluşturmak gerekmez. Yapı portalından SQL veritabanı düzeyinde rolleri yönetirken de kullanıcı oluşturmanız gerekmez; gerektiğinde portal kullanıcıları otomatik olarak oluşturur.

Microsoft Entra kullanıcısı olarak bağlandığında veritabanı kullanıcıları oluşturma

Veritabanınıza bir Microsoft Entra kullanıcısı olarak bağlandığınızda, Microsoft Entra sorumluları için kullanıcı oluşturmak için FROM EXTERNAL PROVIDER yan tümcesini kullanmanız CREATE USER gerekir. FROM EXTERNAL PROVIDER Belirtilen asıl adı Microsoft Entra ile doğrular, asıl tanımlayıcıyı (kullanıcının veya grubun nesne kimliği, uygulama kimliği veya istemci kimliği) alır ve tanımlayıcıyı SQL meta verilerinde kullanıcının güvenlik tanımlayıcısı (SID) olarak depolar. Yan tümcesini kullanırken Microsoft Entra'da Dizin Okuyucuları rolünün FROM EXTERNAL PROVIDER üyesi olmanız gerekir. Aşağıdaki örnek T-SQL betikleri, Microsoft Entra kullanıcısını, Microsoft Entra'daki hizmet sorumlusunu veya Microsoft Entra'daki bir grubu temel alan bir kullanıcı oluşturmak için kullanılır FROM EXTERNAL PROVIDER .

-- 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; 

Microsoft Entra hizmet sorumlusu olarak bağlandığında veritabanı kullanıcıları oluşturma

Bir uygulama hizmet sorumlusuna sahip bir veritabanına bağlandığında, Uygulamanın Microsoft Entra sorumluları için kullanıcı oluşturmak üzere SID ve TYPE yan tümceleriyle sorunu CREATE USER olması gerekir. Belirtilen asıl ad Microsoft Entra'da doğrulanmaz. Geçerli bir ad, geçerli bir SID ve kullanıcı nesne türü sağlamak uygulamanın (uygulama geliştiricisinin) sorumluluğundadır.

Belirtilen sorumlu Microsoft Entra'da bir kullanıcı veya grupsa SID, Microsoft Entra'da söz konusu kullanıcı veya grubun nesne kimliği olmalıdır. Belirtilen sorumlu Microsoft Entra'da hizmet sorumlusuysa, SID, Microsoft Entra'daki hizmet sorumlusunun uygulama kimliği (istemci kimliği) olmalıdır. Microsoft Entra'dan alınan nesne kimlikleri ve uygulama kimlikleri (istemci kimlikleri) ikili (16) olarak dönüştürülmelidir.

Bağımsız değişkenin TYPE değeri şu olmalıdır:

  • E - belirtilen Microsoft Entra sorumlusu bir kullanıcı veya hizmet sorumlusuysa.
  • X - belirtilen Microsoft Entra sorumlusu bir grupsa.

Aşağıdaki T-SQL örnek betiği, Microsoft Entra kullanıcısı için adlı bob@contoso.combir veritabanı kullanıcısı oluşturur ve yeni kullanıcının SID değerini Microsoft Entra kullanıcısının nesne kimliğine ayarlar. Kullanıcının nesne kimliğinin benzersiz tanımlayıcısı dönüştürülür ve sonra bir CREATE USER deyimine birleştirilir. değerini Microsoft Entra'da kullanıcının nesne kimliğiyle değiştirin <unique identifier sid> .

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);

Aşağıdaki örnek, Microsoft Entra hizmet sorumlusu için adlı HRAppbir veritabanı kullanıcısı oluşturur ve yeni kullanıcının SID değerini Microsoft Entra'daki hizmet sorumlusunun istemci kimliğine ayarlar.

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);

Aşağıdaki örnek, Microsoft Entra grubu için adlı HRbir veritabanı kullanıcısı oluşturur ve yeni kullanıcının SID değerini grubun nesne kimliğine ayarlar.

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);

Sınırlamalar

  • Microsoft Entra Id, Fabric'teki SQL veritabanının desteklediği tek kimlik sağlayıcısıdır. Özellikle, SQL kimlik doğrulaması desteklenmez.
  • Oturum açma bilgileri (sunucu sorumluları) desteklenmez.