Permissões para se conectar a um banco de dados remoto do Access a partir do ASP.NET

Este artigo apresenta as permissões para se conectar a um banco de dados remoto do Access.

Versão original do produto: ASP.NET
Número original do KB: 307901

Resumo

Este artigo lista as configurações mínimas de segurança necessárias para se conectar a um banco de dados remoto do Microsoft Access a partir do ASP.NET, incluindo:

  • Configurações do Sistema de Arquivos do Windows NT (NTFS)
  • Configurações do Microsoft Internet Information Services (IIS)
  • Configurações de política de segurança local
  • ASP.NET configurações do arquivo de configuração (Web.config)

Este artigo não inclui como configurar conexões de banco de dados.

Mais informações

Quando os usuários navegam para um site ASP.NET, eles solicitam que algum código seja executado no servidor. Todos os processos são executados no contexto de segurança de uma conta específica. Por padrão, o IIS usa a conta do sistema. A conta do sistema tem acesso total ao computador servidor IIS, mas não tem permissão para acessar pastas compartilhadas em outros computadores (que às vezes são chamados de recursos NTFS). Portanto, você deve configurar o computador IIS para que ele use uma conta diferente da conta do sistema. A seção Configurar o servidor IIS descreve várias maneiras de selecionar uma conta alternativa.

Depois que o IIS estiver configurado para ser executado em outra conta, você deverá conceder permissão a essa conta a todos os arquivos e pastas necessários para usar o banco de dados do Access remoto, incluindo:

  • Pasta temporária no servidor IIS.
  • Compartilhe no computador remoto.
  • Permissões do sistema de arquivos NTFS para o arquivo de banco de dados e sua pasta.
  • Acesso ao computador remoto a partir da rede.
  • Permissão para fazer logon no computador remoto.

A seção Configurar o servidor de acesso descreve como definir essas permissões na conta.

Configurar o servidor IIS

Esta seção descreve como configurar o servidor IIS.

Usar o arquivo Web.config para habilitar a representação

Para se conectar a um banco de dados remoto do Access, ASP.NET deve passar um token de segurança para o usuário que ele representa para o servidor remoto. Se você não habilitar a representação no arquivo Web.config , ASP.NET usará a conta do sistema por padrão. No entanto, a conta do sistema não pode ser autenticada na rede. Para usar uma conta diferente, adicione uma <identity impersonate="true" /> marca no arquivo Web.config para um determinado aplicativo ASP.NET. Por exemplo:

<configuration>
  <system.web>
     ...
     <identity impersonate="true" />
     ...
  </system.web>
</configuration>

Nessa configuração, ASP.NET representa o usuário autenticado do IIS.

Usar um método de autenticação para selecionar uma identidade

Use um dos seguintes métodos de autenticação para selecionar uma identidade:

  • Autenticação anônima
    Você pode configurar qual conta usar no Internet Services Manager. Por padrão, isso é definido como a conta de convidado da Internet ou IUSR_ComputerName. Seja qual for a conta usada, se você usar uma conta local (em vez de uma conta de domínio), deverá seguir as etapas na seção Replicar as Contas de Usuário Local do Computador IIS.

  • Autenticação Básica
    Esse método de autenticação requer que o usuário final digite um nome de usuário e uma senha definidos em seu computador IIS ou em um domínio em que seu computador IIS confie. Como isso permite vários IDs de usuário, você deve adicionar todos esses IDs a um grupo. Sempre que este artigo indicar a concessão de permissões ao usuário representado, conceda essas permissões a esse grupo.

Se qualquer uma dessas contas for uma conta local para o computador IIS, você deverá replicar cada conta local no computador remoto do Access. Para fazer isso, siga as etapas na seção Replicar as contas de usuário local do computador IIS.

  • Autenticação integrada do Windows
    Esse método de autenticação só funcionará se sua rede estiver configurada para usar Kerberos autenticação e se os computadores e contas estiverem configurados como confiáveis para delegação. Caso contrário, você não poderá usar a autenticação integrada do Windows para acessar dados em um recurso NTFS remoto. Isso ocorre porque a autenticação integrada do Windows só permite acesso ao servidor IIS e não a recursos NTFS adicionais que o servidor IIS acessa remotamente.

  • Configuração Web.config
    Use o arquivo Web.config para configurar ASP.NET representar uma conta de domínio específica que tenha as permissões de acesso necessárias no computador remoto. Por padrão, o IIS é definido para impedir que outras pessoas que exibem seu site vejam o conteúdo do arquivo Web.config . No entanto, esse método requer que você armazene o nome de usuário e a senha em texto não criptografado no servidor.

<configuration>
  <system.web>
     ...
     <identity impersonate="true" userName="<supplied username>" password="<supplied password>" />
     ...
  </system.web>
</configuration>
  • Substituir autenticação As instruções anteriores usam a marca e os <identity impersonate="true" /> métodos de autenticação para que o código ASP seja executado como uma conta de usuário em vez da conta do sistema. Independentemente das configurações de representação ou autenticação, há outras maneiras menos comuns de executar como uma conta de usuário. A lista a seguir descreve dois desses métodos alternativos, embora os detalhes desses métodos estejam além do escopo deste artigo.

    • Processo separado Você pode colocar todas as suas funções de acesso a dados em uma DLL (biblioteca de vínculo dinâmico) ActiveX e colocar essa DLL nos Serviços de Componentes. Em seguida, você deve definir as configurações dos Serviços de Componentes para esse componente para que ele seja executado como seu próprio processo (biblioteca do servidor). Na guia Identidade dos Serviços de Componentes, especifique a conta de usuário que você deseja usar.

    • Interfaces de programação de aplicativos de representação Você pode criar uma DLL ActiveX que usa APIs (interfaces de programação de aplicativos) para alternar da conta de usuário que está em uso no momento para qualquer outra conta. Em seguida, você pode usar o banco de dados do Access enquanto executa como esse outro usuário.

Configurar o acesso à pasta temporária

O mecanismo de banco de dados do Microsoft Jet grava arquivos temporários na pasta Temp no computador local (que é o servidor IIS neste caso). Você deve definir as permissões apropriadas para essa pasta Temp.

  • Permissões NTFS Essa configuração requer que a identidade do usuário (que é determinada pelas instruções de representação anteriores) tenha permissões de controle total NTFS na pasta Temp.

  • Variáveis de ambiente TEMP e TMP Pode ser necessário definir as variáveis de ambiente TEMP e TMP para o sistema. Se as variáveis TEMP e TMP não estiverem configuradas no servidor IIS, o mecanismo Jet tentará gravar esses arquivos na Windows\System32 pasta. Como isso pode não ser aceitável para a maioria dos sites, é comum configurar variáveis TEMP e TMP.

Essas variáveis geralmente já estão configuradas para usuários interativos no computador. No entanto, como os processos iniciados no IIS não têm acesso a essas variáveis, talvez seja necessário configurar variáveis TEMP e TMP para o sistema. Para configurar variáveis TEMP e TMP para o sistema, siga estas etapas no Microsoft Windows 2000:

  1. No computador IIS, clique com o botão direito do mouse em Meu Computador e clique em Propriedades.

  2. Na guia Avançado, clique em Variáveis de Ambiente.

  3. Em Variáveis do sistema, pesquise a variável TEMP. Se essa variável não existir, siga estas etapas para adicioná-la:

    1. Na caixa de diálogo Variáveis de Ambiente, clique em Novo.
    2. Na caixa de diálogo Nova Variável de Sistema, na caixa de texto Nome da Variável, digite TEMP.
    3. Na caixa de texto Valor da Variável, digite o local da pasta Temp no computador e clique em OK.
  4. Repita as etapas 3a a 3c para a variável TMP.

Configurar o servidor de acesso

Esta seção descreve como configurar o servidor do Microsoft Access.

Configurar permissões NTFS

Independentemente de como você optar por representar contas dentro ASP.NET, se o sistema de arquivos no computador remoto for NTFS, você deverá definir as permissões no computador remoto corretamente. Por exemplo, você deve definir as seguintes permissões no arquivo de banco de dados:

  • Leitura
  • Gravar
  • Executar
  • Alterar

Além disso, você deve definir as seguintes permissões na pasta em que o arquivo reside:

  • Leitura
  • Gravar
  • Executar
  • Excluir
  • Alterar

Se houver várias contas de usuário possíveis, como na autenticação Básica ou Digest, crie um grupo, adicione as contas de usuário a esse grupo e conceda privilégios ao grupo.

Configurar permissões de compartilhamento

Assim como as permissões do sistema de arquivos NTFS, você também deve definir permissões de compartilhamento para permitir o acesso do mesmo usuário, usuários ou grupo.

Você pode ficar tentado a usar os compartilhamentos administrativos, que o Windows cria para cada unidade (como a unidade C). No entanto, é melhor criar um novo compartilhamento porque os compartilhamentos administrativos exigem que você adicione todos os usuários que usam o compartilhamento ao grupo Administradores.

Se o banco de dados estiver armazenado em uma plataforma diferente da plataforma Microsoft Windows, você deverá configurar esse compartilhamento adequadamente para a plataforma de destino.

Replicar as contas de usuário locais do computador IIS

Para conceder permissões de compartilhamento e NTFS ao usuário representado, o computador do Access deve reconhecer essa conta de usuário. Se a conta for uma conta de domínio, você poderá adicioná-la às listas de permissões em ambos os computadores. Se uma ou mais contas forem uma conta local no computador IIS, ela não será reconhecida no computador do Access. Para resolver esse problema, use o mesmo nome de usuário e a mesma senha para criar uma conta local duplicada no computador do Access.

Configurar permissões de política de segurança local

Você também deve conceder à mesma conta, contas ou grupo permissão para acessar o computador na política de segurança local, a menos que a conta ou contas já pertençam a um grupo que tenha permissão (como o grupo Todos). Você deve conceder as seguintes permissões:

  • Faça logon localmente
  • Acesso a este computador da rede

Para acessar o editor de política de segurança local, siga estas etapas:

  1. No Painel de Controle, clique duas vezes em Ferramentas administrativas e, em seguida, clique duas vezes em Diretiva de Segurança Local.
  2. Expanda o nó Configurações de Segurança, o nó Diretivas Locais e o nó Atribuição de Direitos de Usuário para acessar a permissão Fazer logon localmente e a permissão Acessar este computador a partir da rede .