แชร์ผ่าน


การรับรองความถูกต้องในฐานข้อมูล SQL ใน Microsoft Fabric

นําไปใช้กับ:ฐานข้อมูล SQL ใน Microsoft Fabric

บทความนี้อธิบายการรับรองความถูกต้องสําหรับฐานข้อมูล SQL

เช่นเดียวกับรายการประเภทอื่น ๆ ของ Microsoft Fabric ฐานข้อมูล SQL ขึ้นอยู่กับ การรับรองความถูกต้องของ Microsoft Entra

เพื่อรับรองความถูกต้องไปยังฐานข้อมูล SQL ผู้ใช้ Microsoft Entra โครงร่างสําคัญของบริการ หรือกลุ่มของผู้ใช้ต้องมีสิทธิ์อ่านรายการสําหรับฐานข้อมูลใน Fabric สําหรับข้อมูลเกี่ยวกับวิธีการให้สิทธิ์เข้าถึงข้อมูลประจําตัวของ Microsoft Entra ไปยังพื้นที่ทํางาน Fabric หรือฐานข้อมูลเฉพาะ ให้ดู ตัวควบคุมการเข้าถึง Fabric

เมื่อต้องการค้นหาสายอักขระการเชื่อมต่อไปยังฐานข้อมูล SQL ของคุณใน Fabric ดูเชื่อมต่อกับฐานข้อมูล SQL ของคุณใน Microsoft Fabric

หมายเหตุ

เพื่อเปิดใช้งาน บริการหลัก เพื่อเชื่อมต่อกับ Fabric และฐานข้อมูล SQL คุณยังจําเป็นต้องเปิดใช้งานโครงร่างสําคัญของ บริการสามารถใช้การตั้งค่าผู้เช่า Fabric APIs Fabric เมื่อต้องการเรียนรู้วิธีการเปิดใช้งานการตั้งค่าผู้เช่า ดู การตั้งค่าผู้เช่า Fabric

เชื่อมต่อกับฐานข้อมูล SQL โดยใช้การรับรองความถูกต้องของ Microsoft Entra

คุณสามารถเชื่อมต่อกับฐานข้อมูลโดยใช้การรับรองความถูกต้องของ Microsoft Entra ด้วย:

  • เครื่องมือ SQL ที่สนับสนุนการรับรองความถูกต้องของ Microsoft Entra รวมถึง SQL Server Management Studio และส่วนขยาย mssql ด้วย Visual Studio Code
  • แอปพลิเคชันที่ใช้โปรแกรมควบคุมไคลเอ็นต์ SQL ที่สนับสนุนการรับรองความถูกต้องของ Microsoft Entra รวมถึง SqlClient, JDBC, ODBC และ OLE DB

แอปพลิเคชันและเครื่องมือต้องอัปเกรดโปรแกรมควบคุมเป็นเวอร์ชันที่สนับสนุนการรับรองความถูกต้อง Microsoft Entra และเพิ่มคําสําคัญโหมดการรับรองความถูกต้องในสายอักขระการเชื่อมต่อ SQL ของพวกเขา เช่น ActiveDirectoryInteractiveActiveDirectoryServicePrincipalหรือActiveDirectoryPassword

สร้างผู้ใช้ฐานข้อมูลสําหรับข้อมูลประจําตัว Microsoft Entra

ถ้าคุณวางแผนที่จะกําหนดค่าตัวควบคุมการเข้าถึง SQL ด้วย Transact-SQL ก่อนอื่นคุณต้องสร้างผู้ใช้ฐานข้อมูลที่สอดคล้องกับข้อมูลประจําตัวของ Microsoft Entra ของคุณ - ผู้ใช้ บริการหลัก หรือกลุ่มของพวกเขา ด้วย CREATE USER (Transact-SQL)

การสร้างผู้ใช้ฐานข้อมูลไม่จําเป็นถ้าคุณใช้ ตัวควบคุม การเข้าถึง Fabric (บทบาท พื้นที่ทํางานหรือ สิทธิ์รายการ) คุณไม่จําเป็นต้องสร้างผู้ใช้เมื่อคุณ จัดการบทบาทระดับฐานข้อมูล SQL จากพอร์ทัล Fabric พอร์ทัลจะสร้างผู้ใช้โดยอัตโนมัติเมื่อจําเป็น

สร้างผู้ใช้ฐานข้อมูลเมื่อเชื่อมต่อในฐานะผู้ใช้ Microsoft Entra

เมื่อคุณเชื่อมต่อกับฐานข้อมูลของคุณในฐานะผู้ใช้ Microsoft Entra คุณควรใช้กับCREATE USERส่วนคําสั่ง FROM EXTERNAL PROVIDER เพื่อสร้างผู้ใช้สําหรับ Microsoft Entra หลัก FROM EXTERNAL PROVIDER ตรวจสอบชื่อหลักที่ระบุด้วย Microsoft Entra เรียกใช้ตัวระบุหลัก (ID ออบเจ็กต์ของผู้ใช้หรือกลุ่ม ID แอปพลิเคชัน หรือ ID ไคลเอ็นต์) และจัดเก็บตัวระบุเป็นตัวระบุความปลอดภัย (SID) ของผู้ใช้ในเมตาดาต้า SQL คุณต้องเป็นสมาชิกของบทบาทผู้อ่านไดเรกทอรีใน Microsoft Entra เมื่อใช้FROM EXTERNAL PROVIDERคําสั่ง ตัวอย่างสคริปต์ T-SQL ต่อไปนี้ใช้ FROM EXTERNAL PROVIDER เพื่อสร้างผู้ใช้โดยยึดตามผู้ใช้ Microsoft Entra โครงร่างสําคัญของบริการใน Microsoft Entra หรือกลุ่มใน 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; 

สร้างผู้ใช้ฐานข้อมูลเมื่อเชื่อมต่อเป็นโครงร่างสําคัญของบริการ Microsoft Entra

เมื่อแอปพลิเคชันเชื่อมต่อกับฐานข้อมูลด้วยบริการหลัก แอปพลิเคชันต้องดําเนินการ CREATE USER กับ ส่วนคําสั่ง SID และ TYPE เพื่อสร้างผู้ใช้สําหรับ Microsoft Entra principals ไม่มีการตรวจสอบชื่อหลักที่ระบุใน Microsoft Entra เป็นความรับผิดชอบของแอปพลิเคชัน (นักพัฒนาแอปพลิเคชัน) ในการใส่ชื่อที่ถูกต้องและ SID ที่ถูกต้องและชนิดออบเจ็กต์ของผู้ใช้

หากรายการหลักที่ระบุคือผู้ใช้หรือกลุ่มใน Microsoft Entra SID ต้องเป็น ID ออบเจ็กต์ของผู้ใช้หรือกลุ่มนั้นใน Microsoft Entra หากองค์ประกอบหลักที่ระบุเป็นโครงร่างสําคัญของบริการใน Microsoft Entra SID ต้องเป็น ID แอปพลิเคชัน (ID ไคลเอ็นต์) ของบริการหลักใน Microsoft Entra ID วัตถุและ ID แอปพลิเคชัน (ID ไคลเอ็นต์) ที่ได้รับจาก Microsoft Entra ต้องถูกแปลงเป็นไบนารี(16)

ค่าของ TYPE อาร์กิวเมนต์ต้องเป็น:

  • E - หากหลัก Microsoft Entra ที่ระบุเป็นผู้ใช้หรือโครงร่างสําคัญของบริการ
  • X - หากองค์ประกอบหลักของ Microsoft Entra ที่ระบุเป็นกลุ่ม

สคริปต์ตัวอย่าง T-SQL ต่อไปนี้จะสร้างผู้ใช้ฐานข้อมูลสําหรับผู้ใช้ Microsoft Entra ที่ชื่อว่า bob@contoso.comตั้งค่า SID ของผู้ใช้ใหม่เป็น ID ออบเจ็กต์ของผู้ใช้ Microsoft Entra ตัวระบุที่ไม่ซ้ํากันของ ID ออบเจ็กต์ของผู้ใช้จะถูกแปลงและเชื่อมเข้าด้วยกันเป็น CREATE USER คําสั่ง แทนที่ <unique identifier sid> ด้วย ID ออบเจ็กต์ของผู้ใช้ใน 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);

ตัวอย่างต่อไปนี้สร้างผู้ใช้ฐานข้อมูลสําหรับบริการหลัก Microsoft Entra ที่ชื่อว่า HRAppตั้งค่า SID ของผู้ใช้ใหม่เป็น ID ไคลเอ็นต์ของบริการหลักใน 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);

ตัวอย่างต่อไปนี้สร้างผู้ใช้ฐานข้อมูลสําหรับกลุ่ม Microsoft Entra ที่ชื่อว่า HRตั้งค่า SID ของผู้ใช้ใหม่เป็น ID ออบเจ็กต์ของกลุ่ม

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

ข้อจำกัด

  • Microsoft Entra ID เป็นฐานข้อมูล SQL ของผู้ให้บริการข้อมูลประจําตัวเดียวที่รองรับ Fabric โดยเฉพาะการรับรองความถูกต้องของ SQL ไม่ได้รับการรองรับ
  • ไม่รองรับการเข้าสู่ระบบ (หลักเซิร์ฟเวอร์)