Share via


ฝังรายงานบน SQL Server Analysis Services (SSAS) ภายในองค์กร

นําไปใช้กับ: ผู้ใช้ข้อมูลที่เป็นเจ้าของข้อมูล แอปเป็นเจ้าของข้อมูล

บทความนี้อธิบายวิธีการฝังเนื้อหา Power BI ด้วยการเชื่อมต่อแบบสดของแบบจําลอง Analysis Services ภายในองค์กรลงในแอปพลิเคชันข้อมูลของแอป Power BI มาตรฐานที่เป็นเจ้าของ บทความนี้นําไปใช้กับ แบบจําลอง SSAS การเชื่อมต่อสดทั้งหมด ไม่ว่าจะใช้ RLS หรือไม่

ในสถานการณ์นี้ ฐานข้อมูลอยู่บนแบบจําลอง SSAS (ภายในองค์กร) และกลไกจัดการ Power BI จะเชื่อมต่อผ่านเกตเวย์ บทบาทความปลอดภัย (RLS) และสิทธิ์ถ้ามี จะถูกกําหนดไว้ในแบบจําลอง SSAS และ ไม่ได้ อยู่ใน Power BI Desktop

ใครบทความนี้มีไว้สําหรับ

บทความนี้เกี่ยวข้องกับ ISV ที่มีการตั้งค่าฐานข้อมูลภายในองค์กร (SSAS) อยู่แล้ว (มีหรือไม่มี RLS) และต้องการฝังเนื้อหาโดยตรงจากที่นั่น

การตั้งค่า ISV

การรักษาความปลอดภัยระดับแถวในองค์กรจะใช้ได้กับการเชื่อมต่อแบบสดเท่านั้น แต่คุณสามารถสร้างการเชื่อมต่อแบบสดไปยังฐานข้อมูลใดๆ ไม่ว่าจะใช้ RLS หรือไม่ ซึ่งรวมถึง:

  • ฐานข้อมูลที่ไม่มีการตั้งค่าบทบาท RLS
  • ฐานข้อมูลที่มีสมาชิกอย่างน้อยหนึ่งบทบาท
  • ฐานข้อมูลที่มีบทบาทความปลอดภัยแบบคงที่หรือแบบไดนามิก

หากต้องการฝังรายงานจากแบบจําลอง SSAS คุณจําเป็นต้องดําเนินการต่อไปนี้:

  1. ตั้งค่าเกตเวย์
  2. สร้างการเชื่อมต่อสด
  3. สร้างโทเค็นแบบฝังตัว

ตั้งค่าเกตเวย์

เพิ่มการเชื่อมต่อแหล่งข้อมูลไปยังเกตเวย์ SSAS

ใส่ชื่อแหล่งข้อมูล ชนิดแหล่งข้อมูล เซิร์ฟเวอร์ ฐานข้อมูล ชื่อผู้ใช้และรหัสผ่านที่ไดเรกทอรีที่ใช้งานอยู่รู้จัก

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและการจัดการเกตเวย์ ให้ดู เพิ่มหรือลบแหล่งข้อมูลเกตเวย์

ให้สิทธิ์โครงร่างสําคัญของบริการหรือผู้ใช้หลักบนเกตเวย์

ผู้ใช้ที่สร้างโทเค็นแบบฝังยังต้องการ การ อนุญาตอย่างใดอย่างหนึ่งต่อไปนี้:

  • สิทธิ์ผู้ดูแลระบบเกตเวย์

  • แหล่งข้อมูลเลียนแบบสิทธิ์ (ReadOverrideEffectiveIdentity)

    ผู้ใช้ที่มีสิทธิ์เลียนแบบ (แทนที่) มีไอคอนหลักอยู่ถัดจากชื่อของพวกเขา

    Screenshot of a gateway member with a key icon next to their name.

ทําตามคําแนะนําเหล่านี้เพื่อให้สิทธิ์เกตเวย์แก่ผู้ใช้หลัก บริการหลัก หรือโปรไฟล์บริการหลักของคุณ

ทํา รายการใด รายการหนึ่งต่อไปนี้:

แมปชื่อผู้ใช้

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

สําหรับข้อมูลเพิ่มเติม ดู แมปชื่อผู้ใช้สําหรับแหล่งข้อมูล Analysis Services

สร้างการเชื่อมต่อสด

เมื่อตั้งค่าสภาพแวดล้อมแล้ว ให้สร้าง การเชื่อมต่อ สดระหว่าง Power BI Desktop และ SQL Server และสร้างรายงานของคุณ

  1. เริ่มต้น Power BI Desktop และเลือก รับฐานข้อมูลข้อมูล>

  2. จากรายการแหล่งข้อมูล ให้เลือกฐานข้อมูล SQL Server Analysis Services และเลือกเชื่อมต่อ

    Connect to SQL Server Analysis Services Database.

  3. กรอกรายละเอียดอินสแตนซ์ของ Analysis Services แบบตาราง และเลือกเชื่อมต่อถ่ายทอดสด จากนั้นเลือก ตกลง

    Screenshot of Analysis Services details.

สร้างโทเค็นแบบฝังตัว

หากต้องการฝังรายงานของคุณใน สถานการณ์การฝังตัวสําหรับลูกค้า ของคุณ ให้ สร้างโทเค็น แบบฝังตัวที่ส่งผ่านข้อมูลประจําตัวที่มีผลบังคับใช้ไปยัง Power BI การเชื่อมต่อแบบสดทั้งหมดไปยังกลไกจัดการ AS ต้องมีข้อมูลประจําตัวที่มีผลบังคับใช้แม้ว่าจะไม่มีการใช้งาน RLS ก็ตาม

ถ้าไม่มีการตั้งค่า RLS เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถเข้าถึงฐานข้อมูลได้ ดังนั้นคุณต้องใช้ผู้ดูแลระบบเป็นข้อมูลประจําตัวที่มีผลบังคับใช้

ข้อมูลที่จําเป็นในการสร้างโทเค็นแบบฝังจะขึ้นอยู่กับถ้าคุณกําลังเชื่อมต่อกับ Power BI โดยใช้บริการหลักหรือเป็นผู้ใช้หลัก และถ้าฐานข้อมูลมี RLS

หากต้องการสร้างโทเค็นแบบฝัง ให้ใส่ข้อมูลต่อไปนี้:

  • ชื่อผู้ใช้ (ไม่บังคับถ้าไม่มี RLS จําเป็นสําหรับ RLS) - ชื่อผู้ใช้ที่ถูกต้องที่ SSAS รู้จักซึ่งจะถูกใช้เป็นข้อมูลประจําตัวที่มีผลบังคับใช้ ถ้าฐานข้อมูลไม่ได้ใช้ RLS และไม่มีชื่อผู้ใช้ที่ระบุไว้ ข้อมูลประจําตัวของผู้ใช้หลักจะถูกใช้
  • บทบาท (จําเป็นสําหรับ RLS) - รายงานจะแสดงข้อมูลก็ต่อเมื่อข้อมูลประจําตัวที่มีผลบังคับใช้เป็นสมาชิกของบทบาท

ตัวอย่าง:

public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
    PowerBIClient pbiClient = this.GetPowerBIClient();

    // Define the user identity and roles. Use one of the following:

    var rlsidentity = new EffectiveIdentity(  //If no RLS
       username: "Domain\\Username", // can also be username@contoso.com
       datasets: new List<string>{ datasetId.ToString()}
    )

    var rlsidentity = new EffectiveIdentity(  // If RLS
       username: "username@contoso.com",
       roles: new List<string>{ "MyRole" },
       datasets: new List<string>{ datasetId.ToString()}
    )
    
    // Create a request for getting an embed token for the rls identity defined above
    var tokenRequest = new GenerateTokenRequestV2(
        reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
        datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
        targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
        identities: new List<EffectiveIdentity> { rlsIdentity }
    );

    // Generate an embed token
    var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);

    return embedToken;
}

ในตอนนี้คุณสามารถฝังรายงานของคุณในแอปของคุณ และรายงานของคุณจะกรองข้อมูลตามสิทธิ์ของผู้ใช้ที่เข้าถึงรายงาน

ข้อควรพิจารณาและข้อจำกัด

CustomData ไม่ได้รับการสนับสนุน

สร้างโทเค็นแบบฝังตัว