Compartilhar via


Segurança do SQL Server

As contas e funções do SQL Server desempenham um papel crítico na segurança do Windows Server AppFabric. O AppFabric usa essas entidades do SQL Server para controlar o acesso a armazenamentos e tabelas que contêm os dados das operações de monitoramento, assim como dados de controle de estado para persistência de fluxo de trabalho. O AppFabric não fornece ferramentas que orientem no gerenciamento de segurança de banco de dados. Para criar contas e funções e para exibir, manipular e atribuir as permissões adequadas para os objetos do banco de dados, utilize o suporte à ferramentas que vem com a instalação do do banco de dados. Para o SQL Server, utilize o SQL Server Management Studio.

O AppFabric utiliza os logons e as funções do SQL Server para gerenciar o acesso a ativos, como os armazenamentos de persistência e monitoramento e os procedimentos armazenados. As diretivas de segurança são aplicadas por meio de permissões em tabelas e em procedimentos armazenados que determinam quem pode ler, gravar e realizar operações administrativas em esquemas de persistência e monitoramento. Cada esquema é protegido com seu próprio conjunto de diretivas de segurança.

Modos de autenticação do SQL Server e AppFabric

O SQL Server fornece dois métodos de proteção de autenticação para os seus servidores de banco de dados do AppFabric:

  • Autenticação do Windows. É fornecido pelo modo padrão de autenticação do Windows. É o modo de autenticação mais seguro do SQL Server. Quando o modo de autenticação do Windows é configurado, o SQL Server utiliza a segurança do Windows para validar a conta e a senha da conta de usuário solicitada com o sistema operacional Windows.

  • Autenticação do SQL Server. É fornecido pelo modo de autenticação do SQL Server. Ele existe somente para oferecer compatibilidade com versões anteriores a aplicativos e usuários que precisam acessar o SQL Server, usando uma senha e conta de usuário explícitas. Esse é o método menos seguro.

Apesar de o AppFabric funcionar com a autenticação do SQL Server, a transmissão de senhas e nomes explícitos de conta de usuário, incorporados em uma cadeia de conexão a partir de um arquivo de configuração, não é uma prática recomendada de segurança adequada. É altamente recomendável configurar o SQL Server para que ele use o modo de autenticação do Windows e evite o modo de autenticação do SQL Server.

Se você precisar utilizar o modo de autenticação do SQL Server ou se estiver usando um provedor que não seja do SQL Server e exija senhas armazenadas na cadeia de conexão, é recomendável utilizar cadeias de conexão criptografadas. O AppFabric não consegue processar seções criptografadas de um arquivo de configuração. Desse modo, você não poderá exibir ou adicionar uma cadeia de conexão criptografada, utilizando as ferramentas do AppFabric.

Se você precisar proteger os arquivos de configuração em um computador do AppFabric, criptografando partes de um arquivo de configuração, utilize a Ferramenta de Registro do ASP.NET IIS (Aspnet_regiis.exe). Você pode utilizar essa ferramenta para criptografar (opção -pe) qualquer seção de segurança de um arquivo de configuração fora da interface de usuário do AppFabric. Se posteriormente precisar exibir ou modificar essas seções, você poderá descriptografá-las, usando a opção –pd. Descriptografar as seções permite que você as exiba nas ferramentas do AppFabric, faça alterações, salve as alterações do arquivo de configuração e criptografe as seções novamente, utilizando a ferramenta que fica fora do AppFabric. Para obter mais informações sobre como utilizar a Ferramenta de Registro do ASP.NET IIS, consulte Ferramenta de Registro do ASP.NET IIS (Aspnet_regiis.exe) (https://go.microsoft.com/fwlink/?LinkId=169163).

Logons do SQL Server

Um logon do SQL Server exige uma conta de usuário e senha para fazer logon no computador do SQL Server. É possível visualizá-lo como direito de acesso ou de autenticação na terminologia de segurança do Windows. O SQL Server utiliza a autenticação integrada do Windows para identificar as entidades de segurança que estão tentando acessar ou gerenciar os recursos de banco de dados do AppFabric. Para conectar-se ao SQL Server por meio da autenticação integrada do Windows, você precisa fornecer a identidade do Windows na qual os seus aplicativos estão sendo executados. Você também precisa verificar se a identidade concedeu acesso adequado ao banco de dados do SQL Server.

Para realizar qualquer ação operacional ou configuração nos dados ou esquemas de banco de dados, a conta de logon precisa ser mapeada para uma função do SQL Server que tenha as permissões adequadas. Uma função do SQL Server funciona como um grupo do Windows. A associação a uma conta de logon na função do SQL Server determina a quantidade de controle sobre atividades administrativas e operações de banco de dados que a conta de logon possui. Uma conta de logon pode ser membro de mais de uma função de banco de dados.

Esses logons do SQL Server são criados durante a instalação do AppFabric.

Nome de logon Conta do Windows Associação à função de banco de dados

AS_Administrators

LOCALHOST\AS_Administrators

  • ASMonitoringDbAdmin

  • ASMonitoringDbReader

  • ASMonitoringDbWriter

  • pública

  • Microsoft.ApplicationServer.DurableInstancing.WorkflowAdministrators

  • Microsoft.ApplicationServer.DurableInstancing.WorkflowManagementServiceUsers

  • System.Activities.DurableInstancing.InstanceStoreObservers

  • System.Activities.DurableInstancing.WorkflowActivationUsers

AS_Observers

LOCALHOST\AS_Observers

  • ASMonitoringDbReader

  • pública

  • System.Activities.DurableInstancing.InstanceStoreObservers

IIS_IUSRS

BUILTIN\IIS_IUSRS

  • pública

  • System.Activities.DurableInstancing.InstanceStoreUsers

Funções de banco de dados do SQL Server

O SQL Server possui três tipos de funções de banco de dados: servidor, aplicativo e banco de dados. Para maior integridade, abordaremos brevemente essas funções aqui. O AppFabric aproveita exclusivamente o modelo da função de banco de dados para a maior parte da segurança do seu SQL Server.

  • Função de "servidor" do SQL Server. Uma função de "servidor" do SQL Server é definida fora de qualquer armazenamento no nível do servidor. As funções do SQL Server são predefinidas e, portanto, não podem ser modificadas em número e conteúdo. A função sysadmin é um exemplo de uma função de servidor comum. A associação é um função que permite que a conta de logon tenha controle total sobre todas as operações de banco de dados e capacidade para realizar operações em dados do SQL Server, em qualquer armazenamento. O AppFabric não utiliza explicitamente as funções de servidor em seu modelo de segurança.

  • Função de "aplicativo" do SQL Server. As funções de aplicativo oferecem suporte às necessidades de segurança mais complexas e personalizadas de um determinado aplicativo. Um armazenamento pode ser usado por mais de um aplicativo com uma necessidade em comum para reforçar a segurança de seus dados quando qualquer aplicativo acessá-lo. O AppFabric não utiliza explicitamente as funções de aplicativo em seu modelo de segurança.

  • Função de "banco de dados" do SQL Server. O AppFabric utiliza amplamente a função de banco de dados. Há três tipos de de funções de banco de dados: pública, definida pelo usuário e fixa. Para maior integridade, abordaremos essas funções aqui. O AppFabric aproveita exclusivamente o modelo da função de banco de dados definida pelo usuário para uma grande parte da segurança do seu SQL Server.

    Há três tipos de de funções de banco de dados do SQL Server:

    • Pública. A função de banco de dados pública contém permissões de acesso padrão para todos os usuários do banco de dados. Portanto, todas as contas de logon criadas pelo AppFabric são membros dessa função.

    • Fixa. Da mesma maneira que as funções de "servidor" do SQL Server (por exemplo, sysadmin), as funções de banco de dados fixas também não podem ser modificadas. Diferentemente das funções de servidor, que ficam no nível do servidor, as funções de banco de dados ficam no nível do banco de dados para cada armazenamento. db_owner é um exemplo de função de banco de dados fixa. Você pode adicionar (ou remover) contas de usuário de logon do SQL Server a uma função de banco de dados fixa.

    • Definida pelo usuário. O AppFabric cria determinadas funções de banco de dados definidas pelo usuário vazias durante a instalação. O programa de instalação do AppFabric não insere explicitamente qualquer conta do Windows ou conta de logon do SQL Server nas funções de banco de dados definidas pelo usuário. Você precisa adicionar explicitamente contas por meio das ferramentas de gerenciamento do SQL Server.

O AppFabric utiliza as funções de banco de dados do SQL Server para controlar o acesso aos seus armazenamentos de dados de monitoramento e persistência. Ao inicializar um novo armazenamento de dados de monitoramento ou persistência do AppFabric, diversas funções de segurança de banco de dados definidas pelo usuário são criadas durante a instalação. A tabela a seguir mostra como essas funções são mapeadas para os logons do SQL Server, descritos na seção anterior.

Função definida pelo usuário do SQL Server Esquema Logons mapeados Direitos

ASMonitoringDbAdmin

Monitoramento

AS_Administrators

Gravar em tabela de preparo, ler em exibições de evento e chamar procedimentos armazenados de limpeza e arquivo

ASMonitoringDbReader

Monitoramento

AS_Administrators e AS_Observers

Leia a partir de exibições de evento

ASMonitoringDbWriter

Monitoramento

AS_Administrators

Gravar na tabela de preparo e chamar o procedimento de importação

Microsoft.ApplicationServer.DurableInstancing.WorkflowAdministrators

Persistência

AS_Administrators

Enfileire comandos de controle na fila de comando do armazenamento

System.Activities.DurableInstancing.InstanceStoreObservers

Persistência

AS_Administrators e AS_Observers

Leia a partir das exibições de função de instância

System.Activities.DurableInstancing.InstanceStoreUsers

Persistência

BUILTIN\IIS_IUSRS

Invoque procedimentos armazenados que pertencem à persistência

Microsoft.ApplicationServer.DurableInstancing.WorkflowManagementServiceUsers

Persistência

AS_Administrators

Remova da fila os comandos de controle que estão na fila de comando do armazenamento

System.Activities.DurableInstancing.WorkflowActivationUsers

Persistência

AS_Administrators

Armazenamento de instância de consulta para instâncias de fluxo de trabalho que possam ser ativadas

Se você estiver utilizando o Active Directory, é altamente recomendável criar as suas funções de segurança do AppFabric, usando contas de domínio para simplificar a segurança em vários computadores. Como um administrador do AppFabric, você pode criar explicitamente duas contas personalizadas de grupo por meio do Active Directory para funções de administradores e observadores. Por exemplo, você pode chamá-las de “DOMAIN\MyAppFabricAdmins” e “DOMAIN\MyAppFabricObservers”.   Você pode conceder as permissões apropriadas para ambos os grupos em cada computador, adicionando manualmente o grupo “DOMAIN\MyAppFabricAdmins” ao grupo LOCALHOST\AS_Administrators e o grupo “DOMAIN\MyAppFabricObservers” ao grupo LOCALHOST\AS_Observers. O Serviço de Coleta de Eventos e o Serviço de Gerenciamento de Fluxo de Trabalho precisam ser executados em contas de domínio que sejam membros do grupo “DOMAIN\MyAppFabricAdmins”.

securitySegurança Observação
Os cmdlets do AppFabric, que usam o SQL Server, contam com essas funções de banco de dados do SQL Server para autenticar suas identidades durante a execução.

Armazenamento do banco de dados que não é do SQL Server

As funções de banco de dados do SQL Server são específicas para o SQL Server. No entanto, se você não utilizar o provedor padrão do SQL Server e optar por gravar seu próprio provedor personalizado, poderá mapear a funcionalidades dessas funções para o seu equivalente funcional no armazenamento que não é do SQL Server.

Par os armazenamentos que não são do SQL Server, é necessário incluir o ID de usuário e a senha em uma cadeia de conexão a fim de obter acesso seguro ao armazenamento. Apesar de ser permitido transmitir IDs de usuário e senha em cadeias de conexão para um armazenamento, como autenticação do SQL Server, essa ação não é recomendável. Se a transmissão de ID de usuário e senha em uma cadeia de conexão for a sua única opção, certifique-se de seguir as práticas de segurança adequadas do .NET Framework para garantir que as cadeias de conexão sejam criptografadas.

Dica

Quando você usa cadeias de conexão criptografadas, os aplicativos IIS associados são executados corretamente. No entanto, as ferramentas relacionadas do Gerenciador do IIS não funcionam quando as cadeias de conexão são criptografadas. Para utilizar as ferramentas, é necessário descriptografar as cadeias de conexão, fazer as alterações das configurações, usando as ferramentas do IIS e criptografar as cadeias de conexão novamente.

  2011-12-05