Inserción de un informe en una instancia local de SQL Server Analysis Services (SSAS)
SE APLICA A: La aplicación es la propietaria de los datos El usuario es el propietario de los datos
En este artículo, se explica cómo insertar contenido de Power BI con una conexión dinámica del modelo tabular de Analysis Serviceslocal en una aplicación de Power BI estándar propietaria de la aplicación de datos. Este artículo se aplica a todos los modelos de SSAS de conexión dinámica tanto si implementan RLS como si no.
En este escenario, la base de datos se encuentra en el modelo SSAS (local) y el motor de Power BI se conecta a ella a través de una puerta de enlace. Los roles de seguridad (RLS) y los permisos, si hay alguno, se definen en el modelo de SSAS y no en Power BI Desktop.
A quién va dirigido este artículo
Este artículo es principalmente relevante para los ISV que ya tienen una configuración de base de datos local (SSAS) (con o sin RLS) y quieren insertar contenido directamente desde allí.
Configuración de ISV
La seguridad de nivel de fila local solo está disponible con una conexión dinámica, pero puede crear una conexión dinámica a cualquier base de datos, tanto si implementa RLS como si no. Esto incluye:
- Bases de datos sin roles RLS configurados
- Bases de datos con miembros que pertenecen a uno o varios roles
- Bases de datos con roles de seguridad estáticos o dinámicos
Para insertar un informe desde un modelo de SSAS, debe realizar las siguientes acciones:
- Configuración de la puerta de enlace
- Creación de una conexión dinámica
- Generación de un token de inserción
Configuración de la puerta de enlace
Adición de una conexión de origen de datos a la puerta de enlace de SSAS
Escriba el nombre del origen de datos, el tipo de origen de datos, el servidor, la base de datos, un nombre de usuario y una contraseña que reconozca el directorio activo.
Para obtener más información sobre cómo crear y administrar una puerta de enlace, consulte Adición o eliminación de un origen de datos de puerta de enlace.
Concesión de permisos a usuario maestro o entidad de servicio en la puerta de enlace
El usuario que genera el token de inserción también necesita uno de los siguientes permisos:
Permisos de administrador de puerta de enlace
Permiso de suplantación de origen de datos (ReadOverrideEffectiveIdentity)
Los usuarios con permiso de suplantación (invalidación) tienen un icono de llave junto a su nombre.
Siga estas instrucciones para conceder permisos de puerta de enlace al usuario maestro, la entidad de servicio o el perfil de entidad de servicio.
Lleve a cabo una de las siguientes acciones:
Asignación de nombres de usuario
Si los nombres de usuario del directorio local y del directorio de Microsoft Entra son diferentes y desea ver los datos en el portal, tendrá que crear una tabla de asignación de usuarios que asigne cada usuario o rol de Microsoft Entra ID a los usuarios de la base de datos local. Para obtener instrucciones sobre cómo asignar nombres de usuario, vaya a Reasignación manual de nombres de usuario.
Para obtener más información, consulte Asignación de nombres de usuario a orígenes de datos de Analysis Services.
Creación de una conexión dinámica
Una vez configurado el entorno, cree una conexión dinámica entre Power BI Desktop y SQL Server y cree el informe.
Inicie Power BI Desktop y seleccione Obtener datos>Base de datos.
En la lista de orígenes de datos, seleccione Base de datos de SQL Server Analysis Services y seleccione Conectar.
Rellene los detalles de la instancia tabular de Analysis Services y seleccione Conectar en directo. A continuación, seleccione Aceptar.
Generación de un token de inserción
Para insertar el informe en el escenario de inserción para sus clientes, genere un token de inserción que pase la identidad efectiva a Power BI. Todas las conexiones dinámicas a los motores de AS necesitan una identidad eficaz aunque no haya ninguna implementación de RLS.
Si no hay ninguna configuración de RLS, solo el administración tendrá acceso a la base de datos, por lo que le interesará usar el administrador como identidad efectiva.
La información necesaria para generar un token de inserción depende de si está conectado a Power BI mediante una entidad de servicio o como usuario maestro, y también si la base de datos tiene RLS.
- Token de inserción de usuario maestro
- Token de inserción de entidad de servicio o de perfil de entidad de servicio
Para generar el token de inserción, proporcione la siguiente información:
- Nombre de usuario (opcional si no hay RLS; obligatorio para RLS): un nombre de usuario válido reconocido por el SSAS que se usará como identidad efectiva. Si la base de datos no usa RLS y no se proporciona ningún nombre de usuario, se usarán las credenciales del usuario maestro.
- Rol (necesario para RLS): el informe solo mostrará datos si la identidad efectiva es miembro del rol.
Ejemplo:
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;
}
Ahora puede insertar su informe en la aplicación y este filtrará los datos según los permisos del usuario que acceda al informe.
Consideraciones y limitaciones
No se admite CustomData.