Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola
Estoy tratando de implementar RLS dinámico, pero tener problemas y sería genial si pudiera un poco de ayuda.
Tengo las dos tablas a continuación y tengo la siguiente fórmula
[email] - USERPRINCIPALNAME()
Funciona bien para los dos primeros customerIDs (A y B) pero no funciona para los ID de cliente C y D.
Funcionaría si creara varias filas para C y D, pero eso haría que la relación de tabla fuera de muchos y produjera datos incorrectos.
¿Cómo podría implementar RLS dinámico en esta situación?
Id | Cantidad | Customerid |
1 | 100 | A |
2 | 200 | A |
3 | 300 | B |
4 | 400 | B |
5 | 500 | B |
6 | 600 | C |
7 | 700 | C |
8 | 800 | D |
9 | 900 | D |
10 | 1000 | D |
Customerid | Nombre del cliente | Correo electrónico |
A | Aaa | 111@xxxxxx.com |
B | Bbb | 222@xxxxx.com |
C | Ccc | 222@xxxxx.com,333@xxxxx.com |
D | Ddd | 333@xxxxx.com,444@xxxxx.com |
La tabla siguiente funcionaría, pero los datos serían erróneos, ya que serían muchas a muchas relaciones.
Customerid | Nombre del cliente | Correo electrónico |
A | Aaa | 111@xxxxxx.com |
B | Bbb | 222@xxxxx.com |
C | Ccc | 222@xxxxx.com |
C | Ccc | 333@xxxxx.com |
D | Ddd | 333@xxxxx.com |
D | Ddd | 444@xxxxx.com |
Solved! Go to Solution.
Hola @hideakisuzuki01
Construyo dos mesas como la tuya para hacerme una prueba.
Tabla de datos:
Tabla de usuario (Se ha transformado en el editor de Power Query por Split.):
Cree una relación de varios a muchos entre las columnas CustomerID en dos tablas.
A continuación, agregue dos expresiones Dax en roles de mange.
En la tabla Datos:
[CustomerID] =
CALCULATE (
MAX(Data[CustomerID]),
FILTER (
User,
User[email] = USERPRINCIPALNAME()
&& User[CustomerID] = Data[CustomerID]
)
)
En la tabla Usuario:
[email] = USERPRINCIPALNAME()
Vamos a usar view como para ver el resultado.
Puede descargar el archivo pbix desde este enlace: Dynamic RLS with multiple USERPRINCIPALNAME()
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @hideakisuzuki01
Construyo dos mesas como la tuya para hacerme una prueba.
Tabla de datos:
Tabla de usuario (Se ha transformado en el editor de Power Query por Split.):
Cree una relación de varios a muchos entre las columnas CustomerID en dos tablas.
A continuación, agregue dos expresiones Dax en roles de mange.
En la tabla Datos:
[CustomerID] =
CALCULATE (
MAX(Data[CustomerID]),
FILTER (
User,
User[email] = USERPRINCIPALNAME()
&& User[CustomerID] = Data[CustomerID]
)
)
En la tabla Usuario:
[email] = USERPRINCIPALNAME()
Vamos a usar view como para ver el resultado.
Puede descargar el archivo pbix desde este enlace: Dynamic RLS with multiple USERPRINCIPALNAME()
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@hideakisuzuki01 , c tiene el mismo ID de correo electrónico que B ? Lo mismo para D mismo ID de correo electrónico que C.
Yes, B and C has the same email, because I want both users (222@xxxxx.com and 333@xxxxx.com) to have access to Company B and C`s data.
Does it make sense ?