Protegendo modelos

Em um servidor de relatório, os modelos de relatório são usados como fontes de dados para criar e usar relatórios ad hoc. Você pode proteger os modelos de relatório de três maneiras: através do namespace da pasta do servidor de relatório, através da segurança do item de modelo e da segurança do banco de dados.

Como a segurança dos modelos de relatório tem várias camadas, um usuário que pode exibir um modelo na hierarquia de pastas pode encontrar outras restrições que limitam o uso do modelo em questão em tempo de design e em tempo de execução. A possibilidade de usar um modelo como uma fonte de dados de relatório depende dos seguintes fatores:

  • Segurança baseada em funções em um modelo (quer dizer, a possibilidade de exibir um modelo na hierarquia de pastas do servidor de relatório).

  • Segurança baseada em funções no relatório que usa o modelo como uma fonte de dados. Se o usuário não consegue acessar o relatório, talvez não consiga exibir os dados fornecidos pelo modelo (no Reporting Services, os dados de um modelo podem ser exibidos somente em relatórios; aplicativos de terceiros podem expor dados de modelo de outros modos).

  • Segurança nos itens do modelo.

  • Segurança de banco de dados no nível de exibição, tabela ou coluna.

Protegendo um modelo de relatório no namespace de pasta

Assim como para todos os itens que são armazenados em um servidor de relatório, você pode definir atribuições de função no nível do item que determinam se o usuário pode exibir ou gerenciar um modelo de relatório.

  • Os usuários que têm permissão para exibir um modelo podem vê-lo na hierarquia de pastas do servidor de relatório, ler uma quantidade limitada de informações sobre o modelo na página Propriedades gerais (por exemplo, a data de criação ou modificação) e consultar o modelo clicando nos links de qualquer relatório ad hoc que usa o modelo como uma fonte de dados.

  • Os usuários que têm permissão para gerenciar um modelo podem excluir, renomear e atualizar o modelo. Normalmente, as tarefas de gerenciamento de modelos também requerem a permissão para publicar novos modelos, mas essa permissão é concedida através de atribuições de função em pastas, onde a atribuição de função da pasta em questão determina se os usuários podem adicionar itens.

Os usuários que têm permissão para exibir um modelo publicado não podem abri-lo diretamente para exibir seu conteúdo, nem baixá-lo para o sistema de arquivos. Em tempo de execução, toda a interação com o modelo de relatório é feita por meio do relatório que usa o modelo.

Protegendo itens em um modelo

A segurança de item de modelo permite controlar o acesso a partes específicas de um modelo. Para configurar a segurança de item de modelo, use o SQL Server Management Studio. Depois que você habilitar a segurança de item de modelo, poderá criar atribuições de função em nós específicos no namespace de modelo. Para obter mais informações, consulte Página segurança de item de modelo (Gerenciador de Relatórios).

Um namespace de modelo de relatório é representado como estrutura hierárquica que inclui um nó raiz, entidades, funções de modelo e campos. Ele inclui também pastas e perspectivas que podem ser usadas para organizar (mas não proteger) itens de modelo. Ao exibir o modelo no Management Studio, você pode navegar pelo estrutura hierárquica e especificar atribuições de função em níveis diferentes. Você pode especificar atribuições de função no nó raiz de um modelo de relatório para controlar o acesso ao modelo inteiro ou em partes de um modelo para variar as permissões de acesso em algumas ramificações. Assim como a segurança de namespace de pasta do servidor de relatório, o namespace de modelo dá suporte à segurança herdada de itens de nível inferior na estrutura de árvore.

A segurança de item de modelo é desabilitada por padrão. Quando a segurança de item de modelo não está habilitada, todas as permissões para exibir os dados representados pelo modelo são determinadas através de atribuições de função no modelo e do relatório na hierarquia de pastas do servidor de relatório.

A segurança de item de modelo é transparente para o usuário. Se um usuário não tiver acesso a uma ramificação específica de uma hierarquia de modelos, essa parte do modelo não será apresentada ao usuário no relatório. Ela não poderá ser usada para exploração de dados, nem retornar dados em um relatório. Com a segurança de item de modelo, o servidor de relatório modifica a consulta enviada à fonte de dados para excluir qualquer parte do modelo que se encontre fora dos limites do usuário.

Protegendo modelos por meio da segurança de banco de dados

A segurança de banco de dados fornece a terceira camada de segurança em um relatório controlado por modelo. Se você restringir o acesso a tabelas ou colunas, o banco de dados retornará um erro de acesso negado para todo o acesso não autorizado. Se qualquer tabela ou coluna sujeita à segurança de banco de dados for incluída no modelo, uma mensagem de erro de banco de dados será retornada se o usuário acessar um item de modelo que é mapeado para uma tabela ou coluna à qual ele não tem autorização para exibir. Embora a segurança de banco de dados no nível da tabela ou coluna seja necessária em alguns casos, é importante considerar como ela afeta a navegação de relatórios ad hoc. Um usuário que obtém uma mensagem de erro de banco de dados enquanto navega por um relatório deve realizar suas etapas na ordem inversa para voltar à parte do modelo à qual tem acesso.

ObservaçãoObservação

Se você habilitar a segurança de banco de dados para assegurar que somente usuários específicos leiam valores de tabela ou coluna específicos, configure a fonte de dados para usar a segurança integrada do Windows.

Itens de modelo protegíveis

Use o Management Studio para proteger estas partes de um modelo:

  • nó raiz

  • pastas

  • entidades

  • funções de modelo (onde a termo “função” refere-se à relação entre entidades)

  • campos

Você não pode proteger as perspectivas como um todo, mas pode proteger os itens de modelo dentro da perspectiva. A segurança é herdada com base na segurança do item de modelo. Por exemplo, se o item de modelo puder ser acessado somente por administradores do modelo, ele poderá ser acessado somente por administradores quando aparecer na perspectiva.

A segurança do modelo de relatório é separada da segurança definida na hierarquia de pastas do servidor de relatório e no nível do sistema. O nó raiz de um modelo não é acessado ou protegido pela hierarquia de pastas.

Ocultando itens de modelo

Como alternativa à restrição do acesso por meio de atribuições de funções, use a propriedade Oculto para impedir que os usuários vejam partes de um modelo. Se não desejar que nenhum usuário veja um item de modelo, altere a propriedade Oculto do item para true no Designer de Modelo. Ocultar um item não o remove de cálculos ou relações de modelo. Por exemplo, se você ocultar um campo que é usado em uma expressão, o campo ainda será usado na expressão mesmo que os usuários não possam vê-lo. Quando o item é ocultado, ele não é visto por nenhum usuário. Se desejar variar a visibilidade e o acesso por usuário ou grupo, use atribuições de função em vez da propriedade Oculto para proteger o item.

Como proteger itens em um modelo de relatório

Você pode proteger itens em um modelo do Gerenciador de Relatórios. Para proteger itens de modelo, o modelo de relatório deve ser implantado no servidor de relatório.

  1. No Gerenciador de Relatórios, navegue até a pasta que contém o modelo.

  2. Passe o mouse sobre o nome do modelo e clique na seta para abrir o menu e selecionar Segurança.

  3. Na página Propriedades do Modelo, clique em Segurança do Item de Modelo.

  4. Marque a caixa de seleção Proteger itens de modelo individuais independentemente deste modelo.

  5. Selecione o nó raiz. Uma atribuição de função é necessária no nó raiz.

  6. Clique em Atribuir permissão de leitura aos seguintes usuários e grupos.

  7. Digite a lista de usuários ou grupos separados por ponto-e-vírgula ';'.

  8. Clique em Aplicar.

  9. Navegue até a próxima entidade, relação, campo ou pasta que você quer proteger. Repita as etapas de 6 a 8.