Especificando informações de credencial e conexão para fontes de dados do relatório

Um servidor de relatório usa credenciais para se conectar a fontes de dados externas que fornecem conteúdo a relatórios ou informações de destinatário para assinaturas controladas por dados. Você pode especificar credenciais que usam a Autenticação do Windows, autenticação de banco de dados, nenhuma autenticação ou autenticação personalizada. Ao enviar uma solicitação de conexão pela rede, o servidor de relatório representará uma conta de usuário ou uma conta de execução autônoma. Para obter mais informações sobre o contexto de segurança sob o qual uma conexão é feita, consulte Configuração de fontes de dados e conexões de rede mais adiante neste tópico.

ObservaçãoObservação

As credenciais são também usadas para autenticar usuários com acesso ao servidor de relatório. As informações sobre como autenticar os usuários para um servidor de relatório são fornecidas em outro tópico. Para obter mais informações a respeito, consulte Planejando serviços, contas e conexões.

A conexão com uma fonte de dados externa é definida quando você cria o relatório. Ela pode ser gerenciada separadamente depois que o relatório for publicado. Você pode especificar uma cadeia de caracteres de conexão estática ou uma expressão que permita aos usuários selecionar uma fonte de dados a partir de uma lista dinâmica. Para obter mais informações sobre como especificar um tipo de fonte de dados e cadeia de conexão, consulte Conexões de dados, fontes de dados e cadeias de conexão (SSRS).

Usando fontes de dados remotas

Se o relatório recuperar dados de um servidor de banco de dados remoto, verifique o seguinte:

  • Se as credenciais fornecidas ao servidor de banco de dados são válidas. Se você estiver usando as credenciais de usuário do Windows, tenha certeza de que o usuário tem permissão para o servidor e banco de dados.

  • Se as portas usadas pelo servidor de banco de dados estão abertas. Se você estiver acessando bancos de dados relacionais do SQL Server em computadores externos ou se o banco de dados do servidor de relatório estiver em uma instância do SQL Server externa , você deve abrir as portas 1433 e 1434 no computador externo. Certifique-se de reinicializar o servidor depois de abrir as portas. Para obter mais informações, consulte Como configurar um Firewall do Windows para acesso ao Mecanismo de Banco de Dados.

  • As conexões remotas devem ser habilitadas. Se você estiver acessando bancos de dados relacionais do SQL Server em computadores externos, poderá usar a ferramenta SQL Server Configuration Manager para verificar se as conexões remotas por TCP estão habilitadas.

Maneiras de especificar credenciais para conexão com fontes de dados remotas

As fontes de dados que fornecem conteúdo para relatórios estão normalmente hospedadas em servidores remotos. Para recuperar dados de um relatório, um servidor de relatório deve se conectar ao servidor usando um conjunto de credenciais fornecido antecipadamente ou obtido no momento da execução. Ao configurar uma fonte de dados, você pode especificar credenciais das seguintes maneiras:

  • Solicitar credenciais ao usuário.

  • Armazenar credenciais.

  • Usar a segurança integrada do Windows.

  • Não use nenhuma credencial.

O ambiente de rede determina os tipos de conexões com suporte. Por exemplo, se o protocolo Kerberos versão 5 for habilitado, você poderá usar os recursos de delegação e representação disponíveis na Autenticação do Windows para oferecer suporte a conexões ao longo de vários servidores. Se sua rede não oferecer suporte a esses recursos de segurança, você precisará contornar as restrições de conexão. Se a delegação e a representação não estiverem habilitadas, as credenciais do Windows poderão ser passadas por uma conexão de computador antes que ela expire. Uma conexão de usuário de um computador cliente para um servidor de relatório conta como a primeira conexão. Se o usuário abrir um relatório que recupere dados de um servidor remoto, esse logon contará como a segunda conexão e falhará se você tiver especificado que a conexão deve usar a segurança integrada quando a delegação não estiver habilitada.

Se forem necessárias várias conexões para concluir uma viagem de ida e volta do computador cliente para uma fonte de dados de relatório externa, escolha uma das seguintes estratégias para efetuar a conexão com sucesso.

  • Habilite os recursos de representação e delegação em seu domínio de modo que as credenciais possam ser delegadas a outros computadores sem limite.

  • Use credenciais armazenadas ou credenciais de prompt para consultar fontes de dados externas para dados do relatório. As credenciais podem ser uma conta de domínio do Windows ou um logon de banco de dados.

Credenciais de prompt

Ao configurar uma conexão de fonte de dados de relatório para usar credenciais de prompt, cada usuário que acessa o relatório deve digitar um nome de usuário e senha para recuperar os dados. Essa abordagem é recomendada para relatórios que contêm dados confidenciais. As credenciais de prompt só podem ser usadas em relatórios executados sob demanda. As credenciais de prompt podem ser uma conta do Windows ou logon de banco de dados. Para usar a Autenticação do Windows, você deve selecionar Usar as credenciais do Windows ao conectar-se à fonte de dados. Caso contrário, o servidor de relatório passa credenciais ao servidor de banco de dados para autenticação do usuário. Se o servidor de banco de dados não puder autenticar as credenciais fornecidas, a conexão falhará.

Segurança integrada do Windows

Ao usar a opção Segurança Integrada do Windows, o servidor de relatório passa o token de segurança do usuário acessando o relatório ao servidor que hospeda a fonte de dados externa. Neste caso, não é solicitado que o usuário digite um nome de usuário e senha. Essa abordagem é recomendada se os recursos de personificação e delegação estiverem habilitados. Se esses recursos não estiverem habilitados, você deve usar essa aproximação apenas se todos os servidores que você deseja acessar estiverem localizados no mesmo computador.

Credenciais armazenadas

Você pode armazenar as credenciais usadas para acessar uma fonte de dados externa. As credenciais são armazenadas em criptografia reversível no banco de dados do servidor de relatório. Você pode especificar um conjunto de credenciais armazenadas para cada fonte de dados usada em um relatório. As credenciais fornecidas recuperam os mesmos dados para todo usuário que executa o relatório.

As credenciais armazenadas são recomendadas como parte de uma estratégia para acessar servidores de banco de dados remotos. As credenciais armazenadas são necessárias se você quiser oferecer suporte a assinaturas ou programar a criação de histórico de relatórios ou atualizar instantâneos de relatório. Quando um relatório é executado como um processo em segundo plano, o servidor de relatório é o agente que executa o relatório. Como não há contexto de usuário, o servidor de relatório deve obter informações de credencial do banco de dados do servidor de relatório para conectar-se à fonte de dados.

O nome de usuário e senha que você especifica podem ser credenciais do Windows ou um logon de banco de dados. Se você especificar as credenciais do Windows, o servidor de relatório passará as credenciais ao Windows para autenticação subsequente. Caso contrário, as credenciais são passadas ao servidor de banco de dados para autenticação.

Como conceder permissões "Permitir logon localmente" a contas de usuário de domínio

Se você usar credenciais armazenadas para conectar-se a uma fonte de dados externa, a conta de usuário de domínio do Windows deve ter permissão para efetuar logon localmente. Isso permite que o servidor de relatório represente o usuário no servidor de relatório e envie a solicitação à fonte de dados externa como o usuário representado.

Para conceder essa permissão, faça o seguinte:

  1. No computador do servidor de relatório, em Ferramentas Administrativas, abra Política de Segurança Local.

  2. Sob Configurações de Segurança, expanda Políticas Locais e, então, clique em Atribuição de Direitos de Usuário.

  3. No painel de detalhes, clique com o botão direito em Permitir logon localmente e, então, clique com o botão direito em Propriedades.

  4. Clique em Adicionar Usuário ou Grupo.

  5. Clique em Locais, especifique um domínio ou outro local que você deseja pesquisar e, então, clique em OK.

  6. Digite a conta do Windows para a qual você quer permitir o logon interativo e, então, clique em OK.

  7. Na caixa de diálogo Propriedades de permitir logon localmente, clique em OK.

  8. Verifique se a conta que você selecionou não tem também permissões negadas:

    1. Clique com o botão direito em Negar logon localmente e, então, clique com o botão direito em Propriedades.

    2. Se a conta estiver listada, selecione-a e, então, clique em Remover.

Usando a representação em credenciais armazenadas

Você também pode usar credenciais para representar a identidade de outro usuário. Para bancos de dados do SQL Server, usar os conjuntos de opções de representação define a função SETUSER.

Observação importanteImportante

Não use a representação para relatórios com suporte a assinaturas ou que usam agendas para gerar o histórico de relatório ou atualizar um instantâneo de relatório.

Nenhuma credencial

Você pode configurar uma conexão de fonte de dados para não usar credenciais. A Microsoft recomenda que você sempre use credenciais para acessar fontes de dados; não usar credenciais não é aconselhado. Porém, você pode escolher executar um relatório sem credenciais nos seguintes casos:

  • A fonte de dados remota não requer credenciais.

  • As credenciais são passadas na cadeia de caracteres de conexão (recomendado somente para conexões seguras).

  • O relatório é um sub-relatório que usa as credenciais do relatório pai.

Sob essas condições, o servidor de relatório se conecta a uma fonte de dados remota usando a execução autônoma que você deve definir antecipadamente. Como o servidor de relatório não se conecta a um servidor remoto usando suas credenciais de serviço, você deve especificar uma conta que o servidor de relatório possa usar para fazer a conexão. Para obter mais informações sobre como essa conta, consulte Configurando a conta de execução autônoma.

Configuração de fonte de dados e conexões de rede

A tabela a seguir mostra como são feitas conexões para combinações específicas de tipos de credencial e extensões de processamento de dados. Se você estiver usando uma extensão de processamento de dados personalizada, consulte Especificando conexões para extensões de processamento de dados personalizados.

Tipo

Contexto para conexão de rede

Tipos de fonte de dados

(SQL Server, Oracle, ODBC, OLE DB, Analysis Services, XML, SAP NetWeaver BI, Hyperion Essbase)

Segurança integrada

Representar o usuário atual

Para todos os tipos de fonte de dados, conecte-se usando a conta do usuário atual.

Credenciais do Windows

Representar o usuário especificado

Para SQL Server, Oracle, ODBC e OLE DB: conecte-se usando a conta do usuário representado.

Para Analysis Services: Começando com SQL Server Reporting Services Service Pack 2, com suporte em Windows Server 2003 que usa contas de domínio. Sem suporte no Windows XP e sistemas operacionais anteriores.

Credenciais de banco de dados

Representar a conta de execução autônoma ou conta de serviço

(o Reporting Services remove as permissões de administrador ao enviar a solicitação de conexão que usa a identidade do serviço).

Para SQL Server, Oracle, ODBC e OLE DB:

Acrescente o nome de usuário e senha à cadeia de caracteres de conexão.

Para Analysis Services:

A conexão será bem-sucedida se você estiver usando o protocolo TCP/IP, caso contrário ela falhará.

Para XML:

Falha na conexão com o servidor de relatório se forem usadas as credenciais do banco de dados.

Nenhum

Representar a conta de execução autônoma.

Para SQL Server, Oracle, ODBC e OLE DB:

Use as credenciais definidas na cadeia de caracteres de conexão. A conexão com o servidor de relatório falhará se a conta de execução autônoma estiver indefinida.

Para Analysis Services:

A conexão sempre falhará se nenhuma credencial for especificada, mesmo se a conta de execução autônoma for definida.

Para XML:

Conecte-se como Usuário Anônimo se a conta de execução autônoma estiver definida; caso contrário, a conexão falhará.

Definindo credenciais programaticamente

Você pode definir credenciais em seu código para controlar o acesso a relatórios e ao servidor de relatório. Para obter mais informações, consulte Fontes de dados e métodos de conexão.