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 en tres formas distintas: mediante un espacio de nombres de carpetas de servidor de informes, mediante la seguridad del elemento de modelo y mediante 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 funciones 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 funciones 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 sólo 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 funciones 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 funciones 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, use SQL Server Management Studio. Una vez que habilite la seguridad de los elementos de un modelo, puede crear asignaciones de funciones en nodos específicos del espacio de nombres del modelo. Para obtener más información, vea Propiedades del modelo (página Seguridad de elemento de modelo).

Un espacio de nombres de modelo de informe se representa como una estructura jerárquica que incluye un nodo raíz, entidades, funciones 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, puede explorar la estructura jerárquica y especificar las asignaciones de funciones en diferentes niveles. Puede especificar asignaciones de funciones 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 funciones 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á utilizarse 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 exploración de informes ad hoc. Un usuario que obtiene un mensaje de error de base de datos mientras explora 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 que pueden protegerse

Use Management Studio para proteger estas partes de un modelo:

  • nodo raíz
  • carpetas
  • entidades
  • funciones de modelo (donde el término "función" 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 sólo 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 funciones, 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 funciones para proteger el elemento en lugar de la propiedad Hidden.

Cómo proteger elementos en un modelo de informe

La protección de elementos en un modelo requiere una conexión de servidor de informes en Management Studio. Para proteger los elementos de informe, el modelo de informe debe implementarse en el servidor de informes.

  1. En Management Studio, conéctese al servidor de informes que almacena el modelo.
  2. En el Explorador de objetos, desplácese hasta el modelo, haga clic con el botón secundario en el modelo que desea proteger y haga clic en Propiedades.
  3. En la página Propiedades de modelo, haga clic en Seguridad de elemento de modelo.
  4. Active la casilla de verificación Proteger elementos de modelo individuales independientemente para este modelo.
  5. Seleccione el nodo raíz. Se necesita una asignación de funciones en el nodo raíz.
  6. Haga clic en Usar estas funciones para cada cuenta de usuario o grupo.
  7. Haga clic en Agregar grupo o usuario.
  8. Seleccione el grupo o usuario para el cual crea la asignación de funciones y, a continuación, haga clic en Aceptar.
  9. Desplácese hasta la siguiente entidad, relación, campo o carpeta que desee proteger. Repita los pasos del 6 al 8.

Vea también

Conceptos

Propiedades de los objetos del Diseñador de modelos
HiddenFields (colección del Diseñador de modelos)
Trabajar con el Diseñador de modelos

Ayuda e información

Obtener ayuda sobre SQL Server 2005