Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los roles, en modelos tabulares, definen permisos de miembro para un modelo. Cada rol contiene miembros, por nombre de usuario de Windows o por grupo de Windows, y permisos (lectura, proceso, administrador). Los miembros del rol pueden realizar acciones en el modelo según lo definido por el permiso de rol. Los roles definidos con permisos de lectura también pueden proporcionar seguridad adicional a nivel de filas mediante filtros de filas.
Importante
Para que los usuarios se conecten a un modelo implementado mediante una aplicación cliente de informes o análisis de datos, debe crear al menos un rol con al menos permiso de lectura para el que esos usuarios son miembros.
La información de este tema está pensada para los autores de modelos tabulares que definen roles mediante el cuadro de diálogo Administrador de roles de SQL Server Data Tools (SSDT). Los roles definidos durante la creación de modelos se aplican a la base de datos del área de trabajo del modelo. Una vez implementada una base de datos de modelo, los administradores de bases de datos de modelos pueden administrar (agregar, editar, eliminar) miembros de rol mediante SQL Server Management Studio. Para obtener información sobre la administración de los miembros de roles en una base de datos implementada, consulte Roles del Modelo Tabular (SSAS Tabular).
El Modelado tabular (Tutorial de Adventure Works) incluye información adicional y lecciones sobre cómo usar esta característica.
Secciones de este tema:
Descripción de los roles
Los roles se usan en Microsoft SQL Server Analysis Services para administrar la seguridad de Analysis Services y los datos. Hay dos tipos de roles en Analysis Services:
El rol de servidor, un rol fijo que proporciona acceso de administrador a una instancia de Analysis Services.
Roles de base de datos, roles definidos por autores y administradores de modelos para controlar el acceso a una base de datos y datos de modelos para usuarios que no son administradores.
Los roles definidos para un modelo tabular son roles de base de datos. Es decir, los roles contienen miembros que constan de usuarios o grupos de Windows que tienen permisos específicos que definen la acción que los miembros pueden realizar en la base de datos del modelo. Un rol de base de datos se crea como objeto independiente en la base de datos y solo se aplica a la base de datos en que se crea ese rol. Los usuarios de Windows o los grupos de Windows se incluyen en el rol del autor del modelo, que, de forma predeterminada, tiene permisos de administrador en el servidor de bases de datos del área de trabajo; para un modelo implementado, por un administrador.
Los roles de los modelos tabulares se pueden definir aún más con filtros de fila. Los filtros de fila usan expresiones DAX para definir las filas de una tabla y las filas relacionadas en la muchas direcciones, que un usuario puede consultar. Los filtros de filas que utilizan expresiones DAX solo pueden definirse para los permisos de lectura y de lectura y proceso. Para obtener más información, vea Filtros de fila más adelante en este tema.
De manera predeterminada, cuando crea un nuevo proyecto modelo tabular, el proyecto modelo no tiene ningún rol. Los roles se pueden definir mediante el cuadro de diálogo Administrador de roles de SQL Server Data Tools. Cuando se definen roles durante la creación de modelos, se aplican a la base de datos del área de trabajo del modelo. Cuando se implementa el modelo, se aplican los mismos roles al modelo implementado. Una vez implementado un modelo, los miembros del rol de servidor (administrador de Analysis Services) y los administradores de bases de datos pueden administrar los roles asociados con el modelo y los miembros asociados a cada rol mediante SQL Server Management Studio.
Nota:
Los roles definidos para un modelo configurado para el modo DirectQuery no pueden usar filtros de fila; sin embargo, se aplicarán los permisos definidos para cada rol.
Permisos
Cada rol tiene un único permiso de base de datos definido (excepto el permiso de lectura y proceso combinado). De forma predeterminada, un nuevo rol tendrá el permiso Ninguno. Es decir, una vez que los miembros se agregan al rol con el permiso None, no pueden modificar la base de datos, ejecutar una operación de proceso, consultar datos o ver la base de datos a menos que se conceda un permiso diferente.
Un grupo o usuario de Windows puede ser miembro de cualquier número de roles, cada rol con un permiso diferente. Cuando un usuario es miembro de varios roles, los permisos definidos para cada rol son acumulativos. Por ejemplo, si un usuario es miembro de un rol con el permiso De lectura y también miembro de un rol con permiso None, ese usuario tendrá permisos de lectura.
Cada rol puede tener uno de los siguientes permisos definidos:
| Permisos | Descripción | Filtros de fila mediante DAX |
|---|---|---|
| Ninguno | Los miembros no pueden realizar modificaciones en el esquema de la base de datos modelo y no pueden consultar datos. | Los filtros de fila no se aplican. No hay datos visibles para los usuarios de este rol |
| Lectura | Los miembros pueden consultar datos (basados en filtros de fila), pero no pueden ver la base de datos modelo en SSMS, no pueden realizar ningún cambio en el esquema de la base de datos del modelo y el usuario no puede procesar el modelo. | Se pueden aplicar filtros de fila. Solo los datos especificados en la fórmula DAX del filtro de fila son visibles para los usuarios. |
| Lectura y procesamiento | Los miembros pueden consultar datos (basados en filtros de nivel de fila) y ejecutar operaciones de proceso mediante la ejecución de un script o paquete que contiene un comando de proceso, pero no pueden realizar cambios en la base de datos. No se puede ver la base de datos del modelo en SQL Server Management Studio. | Se pueden aplicar filtros de fila. Solo se pueden consultar los datos especificados en la fórmula DAX del filtro de fila. |
| Proceso | Los miembros pueden ejecutar operaciones de proceso mediante la ejecución de un script o paquete que contiene un comando de proceso. No se puede modificar el esquema de la base de datos del modelo. No se pueden consultar los datos. No se puede consultar la base de datos del modelo en SQL Server Management Studio. | Los filtros de fila no se aplican. No se puede consultar ningún dato en esta función |
| Administrador | Los miembros pueden realizar modificaciones en el esquema del modelo y pueden consultar todos los datos en el diseñador de modelos, el cliente de informes y SQL Server Management Studio. | Los filtros de fila no se aplican. Todos los datos se pueden consultar en este rol. |
Filtros de fila
Los filtros de fila definen las filas de una tabla que los miembros de un rol determinado pueden consultar. Los filtros de fila están definidos para cada tabla en un modelo mediante fórmulas DAX.
Los filtros de fila solo se pueden definir para los roles con permisos de lectura y lectura y proceso. De forma predeterminada, si un filtro de fila no está definido para una tabla determinada, los miembros de un rol que tenga permiso Leer o Leer y Procesar pueden consultar todas las filas de la tabla a menos que se aplique el filtrado cruzado de otra tabla.
Una vez definido un filtro de fila para una tabla determinada, una fórmula DAX, que debe evaluarse como un valor TRUE/FALSE, define las filas que pueden consultar los miembros de ese rol determinado. No se podrán consultar las filas no incluidas en la fórmula DAX. Por ejemplo, para los miembros del rol Sales, la tabla Customers con la siguiente expresión de filtros de fila, =Customers [Country] = "USA", los miembros del rol Sales solo podrán ver clientes en ESTADOS UNIDOS.
Los filtros de fila se aplican a las filas especificadas, así como a las filas relacionadas. Si una tabla tiene varias relaciones, los filtros aplican seguridad a la relación que esté activa. Los filtros de fila se intersecarán con otros archivadores de fila definidos para las tablas relacionadas, por ejemplo:
| Tabla | Expresión DAX |
|---|---|
| Región | =Region[Country]="USA" |
| Categoría de Producto | =ProductCategory[Name]="Bicicletas" |
| Transacciones | =Transacciones[Año]=2008 |
El efecto neto de estos permisos en la tabla Transacciones es que los miembros podrán consultar filas de datos en los que el cliente se encuentra en Estados Unidos y la categoría de producto es bicicletas y el año es 2008. Los usuarios no podrán consultar ninguna transacción fuera de EE. UU., ni ninguna transacción que no sea bicicleta o ninguna transacción que no esté en 2008 a menos que sean miembros de otro rol que conceda estos permisos.
Puede usar el filtro, =FALSE(), para denegar el acceso a todas las filas de una tabla completa.
Seguridad dinámica
La seguridad dinámica proporciona una manera de definir la seguridad de nivel de fila en función del nombre de usuario del usuario que ha iniciado sesión actualmente o de la propiedad CustomData devuelta desde una cadena de conexión. Para implementar la seguridad dinámica, debe incluir en el modelo una tabla con valores de inicio de sesión (nombre de usuario de Windows) para los usuarios, así como un campo que se pueda usar para definir un permiso determinado; por ejemplo, una tabla dimEmployees con un identificador de inicio de sesión (dominio\nombredeusuario) así como un valor de departamento para cada empleado.
Para implementar la seguridad dinámica, puede usar las siguientes funciones como parte de una fórmula DAX para devolver el nombre de usuario del usuario que ha iniciado sesión actualmente o la propiedad CustomData en una cadena de conexión:
| Función | Descripción |
|---|---|
| Función USERNAME (DAX) | Devuelve el nombre de usuario del dominio\ del usuario que ha iniciado sesión actualmente. |
| Función CUSTOMDATA (DAX) | Devuelve la propiedad CustomData en una cadena de conexión. |
Puede usar la función LOOKUPVALUE para devolver valores para una columna en la que el nombre de usuario de Windows es el mismo que el nombre de usuario devuelto por la función USERNAME o una cadena devuelta por la función CustomData. A continuación, las consultas se pueden restringir donde los valores devueltos por LOOKUPVALUE coinciden con los valores de la misma tabla o relacionada.
Por ejemplo, con esta fórmula:
='dimDepartmentGroup'[DepartmentGroupId]=LOOKUPVALUE('dimEmployees'[DepartmentGroupId], 'dimEmployees'[LoginId], USERNAME(), 'dimEmployees'[LoginId], 'dimDepartmentGroup'[DepartmentGroupId])
La función LOOKUPVALUE devuelve valores para la columna dimEmployees[DepartmentId] donde dimEmployees[LoginId] es el mismo que loginID del usuario que ha iniciado sesión actualmente, devuelto por USERNAME y los valores de dimEmployees[DepartmentId] son los mismos que los valores de dimDepartmentGroup[DepartmentId]. Los valores de DepartmentId devueltos por LOOKUPVALUE se usan para restringir las filas consultadas en la tabla dimDepartment y las tablas relacionadas con DepartmentId. Solo se devuelven las filas donde DepartmentId también está en los valores para DepartmentId devueltos por la función LOOKUPVALUE.
dimEmployees
| Apellido | Primer Nombre | ID de inicio de sesión | NombreDelDepartamento | Id de Departamento |
|---|---|---|---|---|
| Marrón | Kevin | Adventure-works\kevin0 | Mercadotecnia | 7 |
| Bradley | David | Adventure-works\david0 | Mercadotecnia | 7 |
| Dobney | JoLynn | Adventure-works\JoLynn0 | Producción | 4 |
| Baretto DeMattos | Paula | Adventure-works\Paula0 | Recursos humanos | 2 |
dimDepartment
| IdDepartamento | NombreDelDepartamento |
|---|---|
| 1 | Corporativo |
| 2 | Administración general y ejecutiva |
| 3 | Administración de inventario |
| 4 | Fabricación |
| 5 | Control de calidad |
| 6 | Investigación y desarrollo |
| 7 | Ventas y marketing |
Evaluación de roles
Al crear un proyecto de modelo, puede usar la característica Analizar en Excel para probar la eficacia de los roles que ha definido. En el menú Modelo del diseñador de modelos, al hacer clic en Analizar en Excel, antes de que se abra Excel, aparecerá el cuadro de diálogo Elegir credenciales y perspectiva . En este cuadro de diálogo, puede especificar el nombre de usuario actual, otro nombre de usuario, un rol y una perspectiva con la que se usará para conectarse al modelo de área de trabajo como origen de datos. Para obtener más información, vea Analizar en Excel (SSAS tabular).
Tareas relacionadas
| Tema | Descripción |
|---|---|
| Creación y administración de roles (SSAS tabular) | Las tareas de este tema describen cómo crear y administrar roles mediante el cuadro de diálogo Administrador de roles. |
Véase también
Perspectivas (SSAS Tabular)
Analizar en Excel (SSAS tabular)
Función USERNAME (DAX)
Función LOOKUPVALUE (DAX)
Función CUSTOMDATA (DAX)