Proteger los modelos

En un servidor de informes, los modelos de informe se usan como orígenes de datos para crear y utilizar informes ad hoc. Puede proteger los modelos de informe de tres modos: a través del espacio de nombres de la carpeta del servidor de informes, a través de la seguridad de los elementos de modelos y de la seguridad de la base de datos.

Debido a que la seguridad de los modelos de informe es de varias capas, un usuario que puede ver un modelo en la jerarquía de carpetas puede encontrar otras restricciones que limiten la forma de usar ese modelo en tiempo de diseño y en tiempo de ejecución. La capacidad de usar un modelo como origen de datos de informe depende de los siguientes factores:

  • La seguridad basada en roles de un modelo (es decir, la capacidad de ver un modelo en la jerarquía de carpetas del servidor de informes).

  • La seguridad basada en roles del informe que usa el modelo como origen de datos. Si un usuario no tiene acceso al informe, es posible que no pueda ver los datos que proporciona el modelo (en Reporting Services, los datos de un modelo solamente se ven en los informes; las aplicaciones de terceros pueden exponer los datos del modelo de otro modo).

  • La seguridad en los elementos del modelo.

  • La seguridad de la base de datos en el nivel de vista, tabla o columna.

Proteger un modelo de informe en el espacio de nombres de carpetas

Al igual que con todos los elementos almacenados en un servidor de informes, puede definir asignaciones de roles de nivel de elemento que determinen si un usuario podrá ver o administrar un modelo de informe.

  • Los usuarios que tengan permiso para ver un modelo pueden verlo en la jerarquía de carpetas del servidor de informes, leer una cantidad limitada de información sobre el modelo en la página de propiedades General (por ejemplo, cuándo se ha creado o modificado), y realizar consultas al modelo haciendo clic en los vínculos de cualquier informe ad hoc que use el modelo como origen de datos.

  • Los usuarios que tengan permiso para administrar un modelo pueden eliminar, cambiar de nombre y actualizar el modelo. Por lo general, las tareas de administración del modelo también requieren la capacidad de publicar nuevos modelos, pero esto se lleva a cabo realmente mediante las asignaciones de roles de las carpetas, que determinan si los usuarios pueden agregar elementos a ellas.

Los usuarios que tengan permiso para ver un modelo publicado no pueden abrirlo directamente para ver su contenido o descargarlo al sistema de archivos. En tiempo de ejecución, toda la interacción con el modelo de informe se realiza a través del informe que lo utiliza.

Proteger los elementos de un modelo

La seguridad de los elementos de un modelo permite controlar el acceso a partes específicas de un modelo. Para configurar la seguridad de los elementos de un modelo, utilice SQL Server Management Studio. Una vez que habilite la seguridad de los elementos de un modelo, puede crear asignaciones de roles en nodos específicos del espacio de nombres del modelo. Para obtener más información, vea Página Seguridad de elemento de modelo (Administrador de informes).

Un espacio de nombres de modelo de informe se representa como una estructura jerárquica que incluye un nodo raíz, entidades, roles de modelo y campos. También incluye carpetas y perspectivas que puede usar para organizar (pero no para proteger) los elementos de modelo. Cuando se ve el modelo en Management Studio, se puede explorar la estructura jerárquica y especificar las asignaciones de roles en diferentes niveles. Puede especificar asignaciones de roles en el nodo raíz de un modelo de informe para controlar el acceso a todo el modelo, o en parte de un modelo para cambiar los permisos de acceso en ramas seleccionadas. Al igual que la seguridad del espacio de nombres de carpetas del servidor de informes, el espacio de nombres del modelo admite la seguridad heredada para los elementos en la zona inferior de la estructura de árbol.

De manera predeterminada, la seguridad de elemento de modelo está desactivada. Cuando la seguridad de elemento de modelo no está habilitada, todos los permisos para ver los datos que el modelo representa se determinan mediante las asignaciones de roles del modelo y el informe, en la jerarquía de carpetas del servidor de informes.

La seguridad de elemento de modelo es visible para el usuario. Si un usuario no tiene acceso a una rama determinada de la jerarquía del modelo, esa parte del modelo no se presenta al usuario en el informe. No podrá usarse para la exploración de datos ni podrá devolver datos en un informe. Con la seguridad de elemento de modelo, el servidor de informes modifica la consulta que se envía al origen de datos para excluir cualquier parte del modelo que se halle fuera de los límites del usuario.

Proteger modelos mediante la seguridad de la base de datos

La seguridad de la base de datos proporciona la tercera capa de seguridad en un informe controlado por un modelo. Si se restringe el acceso a las tablas o columnas, la base de datos devolverá un error de acceso denegado para todos los accesos no autorizados. Si incluye en el modelo tablas o columnas sujetas a la seguridad de la base de datos, se devolverá un mensaje de error de base de datos si un usuario tiene acceso a un elemento de modelo que se asigne a una tabla o columna que no esté autorizado para ver. Aunque la seguridad de la base de datos en el nivel de tabla o columna sea necesaria en algunos escenarios, es importante considerar cómo afecta a la navegación en informes ad hoc. Un usuario que obtiene un mensaje de error de base de datos mientras navega por un informe deberá volver sus pasos hasta la parte del modelo a la que tiene acceso.

Nota

Si depende de la seguridad de la base de datos para asegurarse de que únicamente determinados usuarios puedan leer los valores de tablas o columnas específicas, debe configurar el origen de datos para que use la seguridad integrada de Windows.

Elementos de modelo protegibles

Utilice Management Studio para proteger estas partes de un modelo:

  • nodo raíz

  • carpetas

  • entidades

  • roles de modelo (donde el término "rol" hace referencia a la relación entre entidades)

  • campos

No es posible proteger perspectivas en conjunto, pero puede proteger los elementos de modelo de la perspectiva. La seguridad de hereda en función de la seguridad del elemento de modelo. Por ejemplo, si únicamente los administradores tienen acceso al elemento de modelo dentro del modelo, aquéllos solo podrán tener acceso al elemento de modelo cuando aparezca en la perspectiva.

La seguridad del modelo de informe es independiente de la seguridad que se define en la jerarquía de carpetas del servidor de informes y en el nivel del sistema. No se puede proteger ni tener acceso al nodo raíz de un modelo mediante la jerarquía de carpetas.

Ocultar elementos de modelo

Como alternativa a la restricción de acceso mediante asignaciones de roles, puede usar la propiedad Hidden para evitar que los usuarios vean partes de un modelo. Si desea que los usuarios no puedan ver un elemento de modelo, cambie la propiedad Hidden de ese elemento a True en el Diseñador de modelos. Cuando se oculta un elemento, no se quita de los cálculos o relaciones del modelo. Por ejemplo, si oculta un campo que se use en una expresión, el campo seguirá utilizándose en la expresión incluso si los usuarios no pueden verlo. Cuando se oculta un elemento, se oculta para todos los usuarios. Si desea cambiar la visibilidad y el acceso para un usuario o grupo, use las asignaciones de roles para proteger el elemento en lugar de la propiedad Hidden.

Proteger elementos en un modelo de informe

Puede proteger los elementos en un modelo del Administrador de informes. Para proteger los elementos de informe, el modelo de informe debe implementarse en el servidor de informes.

  1. En el Administrador de informes, navegue a la carpeta que contenga el informe.

  2. Mantenga el mouse sobre el nombre del modelo, haga clic en la flecha para abrir el menú y seleccione Seguridad.

  3. En la página Propiedades del modelo, haga clic en Seguridad de elemento de modelo.

  4. Active la casilla Proteger elementos de modelo individuales independientemente para este modelo.

  5. Seleccione el nodo raíz. Se necesita una asignación de roles en el nodo raíz.

  6. Haga clic en Asignar permiso de lectura a los usuarios y grupos siguientes (separados con puntos y coma).

  7. Escriba la lista de usuarios o grupos separados por un punto y coma ';.'

  8. Haga clic en Aplicar.

  9. Navegue hasta la siguiente entidad, relación, campo o carpeta que desee proteger. Repita los pasos del 6 al 8.