Problem Statement: You are trying to create a seperate user for reading datasets in Power BI.
Issue: After creating the user login, you are facing this error while trying to read your external tables or view
Msg 13807, Level 16, State 1, Procedure Dim_ABC, Line 2 [Batch Start Line 0]
Content of directory on path 'https://data.dfs.core.windows.net/data/Gold/Dim_ABC/_delta_log/*.*' cannot be listed.
Msg 4413, Level 16, State 1, Line 1
Could not use view or function 'dbo.Dim_ABC' because of binding errors.
Solution:
Step 1: Create a Master Key
CREATE
MASTER KEY ENCRYPTION BY PASSWORD = '*******'
Step 2: Create a Database Scoped Credential with Managed Identity
CREATE DATABASE SCOPED CREDENTIAL [PowerBICredential]
WITH IDENTITY = 'Managed Identity'
Step 3: Create a Power BI login
CREATE LOGIN PowerBI_RO WITH PASSWORD = '*******';
GO
CREATE USER PowerBI_RO FROM LOGIN PowerBI_RO
GO
ALTER ROLE db_datareader ADD MEMBER PowerBI_RO;
Step 4 -Grant Access to Power BI Scoped Credential to
Power BI login
GRANT CONTROL TO PowerBI_RO
GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[PowerBICredential]
TO PowerBI_RO
Step 5 - Create an External Data Source associated to this credential
CREATE EXTERNAL DATA SOURCE [DeltaLakeStorage]
WITH (
LOCATION =
'abfss://containername@datalakename.dfs.core.windows.net/'
,
CREDENTIAL= [PowerBICredential]
)
Step 6: Login and run a select statement and you should be able to use this to view delta lake tables.
Update(26th January): Microsoft Synapse Analytics youtube page has recently published a video tutorial on how to do this. - https://www.youtube.com/watch?v=_OZ7XUapJZs
No comments:
Post a Comment