SlideShare a Scribd company logo
1 of 29
Download to read offline
Asegura los datos de tu modeloa nivel de fila
Tama Francisquez
Victor García
Agenda
 Seguridad a Nivel de Filas (RLS)
 Necesidad
 Escenarios para Seguridad RLS
 Algunas Piezas de la Seguridad RLS
 Identidad de Usuarios
 Acceso al Dato PowerBI / Tabular
 Métodos para RLS
 Estático
 Dinámico
 Otras Implementaciones Dinámicas
 SQL Backend*
Seguridad a Nivel
de Filas
¿Por qué asegurar nuestro dato?
¿Cómo compartir reportes?
Compartir
Dashboard
Workspace
App de
Power BI
Publicar a
la web
Sharepoint
Online
Power BI
Embebido
AS Tabular
On-Prem
AS Tabular
Gateway
Gratis Si
Sin Necesidad de cuenta en
Power BI
Si Si
Niveles de Acceso Lectura
Lectura /
Escritura
Lectura Lectura Lectura Lectura
Lectura /
Procesado
Lectura
Puedes Compartir con otros Si Si Si Si No
Entornos de Desarrollo /
Producción
Si Si Si
Compartir Multiples Items Si Si
Extras
Web
Developer
Seguridad a Nivel de Filas Si Si Si Si Si Si Si
Seguridad a Nivel de Filas
Capacidad para controlar finamente el acceso a cada fila en
contextos con multiples usuarios.
Escenarios para RLS
On-Prem
Cloud
Grupo AAD
Usuarios AAD
PowerBI
Service
Azure
Analysis Services
On-Prem
Data Gateway
Report or
Tabular Model
Sources
Componentes para
Seguridad RLS
Identidad de Usuarios – On-prem
 Necesidad de elegir una arquitectura de identidades:
 Identidades Administradas
 Identidades Federadas
 Seguridad Basada en Dominio Activo
 Roles
Identidad de Usuarios – Cloud
 Seguridad Basada en Dominio Activo de Azure (AAD)
 Necesidad de elegir una arquitectura de identidades:
 Identidades Administradas
 Identidades Federadas
 Puedes replicar tu AAD con un directorio on-prem
Acceso al Dato – On-Prem
On-Prem Data Gateway
 Daemon que se conecta con Azure (Bus + Cloud Gateway)
Data source Live/DirectQuery
User configured manual or
scheduled refresh
Analysis Services Tabular Yes Yes
Analysis Services Multidimensional Yes Yes
File Yes
Folder Yes
IBM DB2 Yes
IBM Informix Database Yes
IBM Netezza Yes Yes
Impala Yes Yes
MySQL Yes
OData Yes
ODBC Yes
Oledb Yes
Oracle Yes Yes
PostgresSQL Yes
SAP BW Yes Yes
SAP HANA Yes Yes
SharePoint list (on-premises) Yes
Snowflake Yes Yes
SQL Server Yes Yes
Sybase Yes
Teradata Yes Yes
Web Yes
Métodos de
Seguridad
RLS – Método Estático Power BI
 Implementación
 Usuarios / Roles
 Reglas
 Gateway
 Publicación
 Gestión de Miembros en Servicio Power BI
Demo
 Seguridad estática Power BI
RLS – Método Estático Tabular
 Implementación
 Usuarios / Roles
 Reglas
 Consumo del Dato
Demo
 Seguridad estática SSAS Tabular
RLS – Método Dinámico
 Método usado en Enterprise
 Reduce costo de mantenimiento
 Implementación
 Usando las funciones USERNAME() or UserPrincipalName() en DAX
=DimSalesTerritory[SalesTerritoryKey] = LOOKUPVALUE(
DimUserSecurity[SalesTerritoryID],
DimUserSecurity[UserName],
USERNAME(),
DimUserSecurity[SalesTerritoryID],
DimSalesTerritory[SalesTerritoryKey])
RLS – Método Dinámico
 Otras implementaciones dinámicas
 Acceso a Nivel de Gerente
 Acceso Jerarquizado
= PATHCONTAINS(User[Path],
MaxX(
Filter( User,
[Email]=USERPRINCIPALNAME())
,User[ID]
)
)
If(
MaxX(
Filter(
'Sales Rep',
'Sales Rep'[Email]=Username())
,'Sales Rep'[Is Manager])=0,
'Sales Rep'[Email]=Username(),
1=1
)
Demo
 Seguridad dinámica PowerBI / Tabular
Bonus
RLS en SQL Backend
Bonus Track: RLS en SQL Backend
CREATE SECURITY POLICY mySecurityPolicy
ADD FILTER PREDICATE dbo.fn_securitypredicate(wing, startTime, endTime)
ON dbo.patients
Predicate function
User-defined inline table-valued function (iTVF) implementing security logic
Can be arbitrarily complicated, containing joins with other tables
Security predicate
Binds a predicate function to a particular table, applying it for all queries
Two types: filter predicates and blocking predicates (coming soon)
Security policy
Collection of security predicates for managing security across multiple tables
Three
Security Policy transparently rewrites query to apply filter predicate
Bonus Track: RLS en SQL BackendTwo
App user (e.g., nurse) selects from Patients table
Database Policy Manager
CREATE FUNCTION dbo.fn_securitypredicate(@wing int)
RETURNS TABLE WITH SCHEMABINDING AS
return SELECT 1 as [fn_securitypredicate_result] FROM
StaffDuties d INNER JOIN Employees e
ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing;
CREATE SECURITY POLICY dbo.SecPol
ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients
WITH (STATE = ON)
Filter
Predicate:
INNER
JOIN…
Security
Policy
Application
Nurse
SELECT * FROM
Patients
SELECT * FROM Patients
SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing);
SELECT Patients.* FROM Patients,
StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing;
One
Bonus Track: RLS en SQL Backend
CREATE FUNCTION dbo.fn_securitypredicate(@wing int)
RETURNS TABLE WITH SCHEMABINDING AS
return SELECT 1 as [fn_securitypredicate_result]
FROM
StaffDuties d INNER JOIN Employees e
ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID()
AND @wing = d.Wing;
CREATE SECURITY POLICY dbo.SecPol
ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing)
ON Patients
WITH (STATE = ON)
Fine-grained access control over
rows in a table based on one or
more pre-defined filtering
criteria, such as user’s role or
clearance level in organization
Concepts:
Predicate function
Security policy
Recursos y Referencias
 Whitepaper de Seguridad en PowerBI
https://docs.microsoft.com/en-us/power-bi/service-admin-power-bi-security
 On-Prem Data Gateway
https://docs.microsoft.com/en-us/power-bi/service-gateway-onprem
 Whitepaper de Seguridad en Modelos Tabulares
https://docs.microsoft.com/en-us/sql/analysis-services/tabular-models/object-level-security
Resumen
 Seguridad a Nivel de Filas (RLS)
 Necesidad
 Escenarios para Seguridad RLS
 Algunas Piezas de la Seguridad RLS
 Identidad de Usuarios
 Acceso al Dato PowerBI / Tabular
 Métodos para RLS
 Estático
 Dinámico
 Otras Implementaciones Dinámicas
 SQL Backend*
Seguridad a Nivel de Filas
Preguntas

More Related Content

Similar to SolidQ Summit 2018 - Seguridad a nivel datos. RLS

074 bi agil + saa s + cloud = tda
074 bi agil + saa s + cloud = tda074 bi agil + saa s + cloud = tda
074 bi agil + saa s + cloud = tda
GeneXus
 
Lenguaje de programacion orientado a eventos
Lenguaje de programacion orientado a eventosLenguaje de programacion orientado a eventos
Lenguaje de programacion orientado a eventos
Jairo Velasquez Rivera
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport
José Pedro Avila
 
02 troubleshooting essentials sql server profiler - sql pass peru
02 troubleshooting essentials   sql server profiler - sql pass peru02 troubleshooting essentials   sql server profiler - sql pass peru
02 troubleshooting essentials sql server profiler - sql pass peru
Guillermo Taylor
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
hirmaroxana13
 

Similar to SolidQ Summit 2018 - Seguridad a nivel datos. RLS (20)

Glosario base de datos jeison cruz
Glosario base de datos jeison cruzGlosario base de datos jeison cruz
Glosario base de datos jeison cruz
 
Glosario base de datos Jeison Cruz
Glosario base de datos Jeison CruzGlosario base de datos Jeison Cruz
Glosario base de datos Jeison Cruz
 
Tallerdebasededatosunidad1 4
Tallerdebasededatosunidad1 4Tallerdebasededatosunidad1 4
Tallerdebasededatosunidad1 4
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
074 bi agil + saa s + cloud = tda
074 bi agil + saa s + cloud = tda074 bi agil + saa s + cloud = tda
074 bi agil + saa s + cloud = tda
 
VLCSofting 2017 - Modernizando las fábricas hacia el concepto de factorías 4....
VLCSofting 2017 - Modernizando las fábricas hacia el concepto de factorías 4....VLCSofting 2017 - Modernizando las fábricas hacia el concepto de factorías 4....
VLCSofting 2017 - Modernizando las fábricas hacia el concepto de factorías 4....
 
Enterprise DB por Eptisa TI
Enterprise DB por Eptisa TI Enterprise DB por Eptisa TI
Enterprise DB por Eptisa TI
 
Lenguaje de programacion orientado a eventos
Lenguaje de programacion orientado a eventosLenguaje de programacion orientado a eventos
Lenguaje de programacion orientado a eventos
 
Programando en capas
Programando en capasProgramando en capas
Programando en capas
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Powerpoint Marcela
Powerpoint MarcelaPowerpoint Marcela
Powerpoint Marcela
 
Bases de Datos II: El entorno
Bases de Datos II: El entornoBases de Datos II: El entorno
Bases de Datos II: El entorno
 
Presentación Tecnológica del ERP-I2E
Presentación Tecnológica del ERP-I2EPresentación Tecnológica del ERP-I2E
Presentación Tecnológica del ERP-I2E
 
DBMoto7 full_es
DBMoto7 full_esDBMoto7 full_es
DBMoto7 full_es
 
C:\Fakepath\Bdiii
C:\Fakepath\BdiiiC:\Fakepath\Bdiii
C:\Fakepath\Bdiii
 
02 troubleshooting essentials sql server profiler - sql pass peru
02 troubleshooting essentials   sql server profiler - sql pass peru02 troubleshooting essentials   sql server profiler - sql pass peru
02 troubleshooting essentials sql server profiler - sql pass peru
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
 
Dbms
DbmsDbms
Dbms
 

More from SolidQ

More from SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 
Novedades de SSAS 2017
Novedades de SSAS 2017Novedades de SSAS 2017
Novedades de SSAS 2017
 

Recently uploaded

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Recently uploaded (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

SolidQ Summit 2018 - Seguridad a nivel datos. RLS

  • 1. Asegura los datos de tu modeloa nivel de fila Tama Francisquez Victor García
  • 2. Agenda  Seguridad a Nivel de Filas (RLS)  Necesidad  Escenarios para Seguridad RLS  Algunas Piezas de la Seguridad RLS  Identidad de Usuarios  Acceso al Dato PowerBI / Tabular  Métodos para RLS  Estático  Dinámico  Otras Implementaciones Dinámicas  SQL Backend*
  • 4. ¿Por qué asegurar nuestro dato?
  • 5. ¿Cómo compartir reportes? Compartir Dashboard Workspace App de Power BI Publicar a la web Sharepoint Online Power BI Embebido AS Tabular On-Prem AS Tabular Gateway Gratis Si Sin Necesidad de cuenta en Power BI Si Si Niveles de Acceso Lectura Lectura / Escritura Lectura Lectura Lectura Lectura Lectura / Procesado Lectura Puedes Compartir con otros Si Si Si Si No Entornos de Desarrollo / Producción Si Si Si Compartir Multiples Items Si Si Extras Web Developer Seguridad a Nivel de Filas Si Si Si Si Si Si Si
  • 6. Seguridad a Nivel de Filas Capacidad para controlar finamente el acceso a cada fila en contextos con multiples usuarios.
  • 7. Escenarios para RLS On-Prem Cloud Grupo AAD Usuarios AAD PowerBI Service Azure Analysis Services On-Prem Data Gateway Report or Tabular Model Sources
  • 9. Identidad de Usuarios – On-prem  Necesidad de elegir una arquitectura de identidades:  Identidades Administradas  Identidades Federadas  Seguridad Basada en Dominio Activo  Roles
  • 10. Identidad de Usuarios – Cloud  Seguridad Basada en Dominio Activo de Azure (AAD)  Necesidad de elegir una arquitectura de identidades:  Identidades Administradas  Identidades Federadas  Puedes replicar tu AAD con un directorio on-prem
  • 11. Acceso al Dato – On-Prem
  • 12. On-Prem Data Gateway  Daemon que se conecta con Azure (Bus + Cloud Gateway) Data source Live/DirectQuery User configured manual or scheduled refresh Analysis Services Tabular Yes Yes Analysis Services Multidimensional Yes Yes File Yes Folder Yes IBM DB2 Yes IBM Informix Database Yes IBM Netezza Yes Yes Impala Yes Yes MySQL Yes OData Yes ODBC Yes Oledb Yes Oracle Yes Yes PostgresSQL Yes SAP BW Yes Yes SAP HANA Yes Yes SharePoint list (on-premises) Yes Snowflake Yes Yes SQL Server Yes Yes Sybase Yes Teradata Yes Yes Web Yes
  • 14. RLS – Método Estático Power BI  Implementación  Usuarios / Roles  Reglas  Gateway  Publicación  Gestión de Miembros en Servicio Power BI
  • 16. RLS – Método Estático Tabular  Implementación  Usuarios / Roles  Reglas  Consumo del Dato
  • 18. RLS – Método Dinámico  Método usado en Enterprise  Reduce costo de mantenimiento  Implementación  Usando las funciones USERNAME() or UserPrincipalName() en DAX =DimSalesTerritory[SalesTerritoryKey] = LOOKUPVALUE( DimUserSecurity[SalesTerritoryID], DimUserSecurity[UserName], USERNAME(), DimUserSecurity[SalesTerritoryID], DimSalesTerritory[SalesTerritoryKey])
  • 19. RLS – Método Dinámico  Otras implementaciones dinámicas  Acceso a Nivel de Gerente  Acceso Jerarquizado = PATHCONTAINS(User[Path], MaxX( Filter( User, [Email]=USERPRINCIPALNAME()) ,User[ID] ) ) If( MaxX( Filter( 'Sales Rep', 'Sales Rep'[Email]=Username()) ,'Sales Rep'[Is Manager])=0, 'Sales Rep'[Email]=Username(), 1=1 )
  • 20. Demo  Seguridad dinámica PowerBI / Tabular
  • 21. Bonus
  • 22. RLS en SQL Backend
  • 23. Bonus Track: RLS en SQL Backend CREATE SECURITY POLICY mySecurityPolicy ADD FILTER PREDICATE dbo.fn_securitypredicate(wing, startTime, endTime) ON dbo.patients Predicate function User-defined inline table-valued function (iTVF) implementing security logic Can be arbitrarily complicated, containing joins with other tables Security predicate Binds a predicate function to a particular table, applying it for all queries Two types: filter predicates and blocking predicates (coming soon) Security policy Collection of security predicates for managing security across multiple tables
  • 24. Three Security Policy transparently rewrites query to apply filter predicate Bonus Track: RLS en SQL BackendTwo App user (e.g., nurse) selects from Patients table Database Policy Manager CREATE FUNCTION dbo.fn_securitypredicate(@wing int) RETURNS TABLE WITH SCHEMABINDING AS return SELECT 1 as [fn_securitypredicate_result] FROM StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing; CREATE SECURITY POLICY dbo.SecPol ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients WITH (STATE = ON) Filter Predicate: INNER JOIN… Security Policy Application Nurse SELECT * FROM Patients SELECT * FROM Patients SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing); SELECT Patients.* FROM Patients, StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing; One
  • 25. Bonus Track: RLS en SQL Backend CREATE FUNCTION dbo.fn_securitypredicate(@wing int) RETURNS TABLE WITH SCHEMABINDING AS return SELECT 1 as [fn_securitypredicate_result] FROM StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing; CREATE SECURITY POLICY dbo.SecPol ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients WITH (STATE = ON) Fine-grained access control over rows in a table based on one or more pre-defined filtering criteria, such as user’s role or clearance level in organization Concepts: Predicate function Security policy
  • 26. Recursos y Referencias  Whitepaper de Seguridad en PowerBI https://docs.microsoft.com/en-us/power-bi/service-admin-power-bi-security  On-Prem Data Gateway https://docs.microsoft.com/en-us/power-bi/service-gateway-onprem  Whitepaper de Seguridad en Modelos Tabulares https://docs.microsoft.com/en-us/sql/analysis-services/tabular-models/object-level-security
  • 27. Resumen  Seguridad a Nivel de Filas (RLS)  Necesidad  Escenarios para Seguridad RLS  Algunas Piezas de la Seguridad RLS  Identidad de Usuarios  Acceso al Dato PowerBI / Tabular  Métodos para RLS  Estático  Dinámico  Otras Implementaciones Dinámicas  SQL Backend*
  • 28. Seguridad a Nivel de Filas