Existem duas opções de modo de segurança ao instalar o SQL Server. A diferença entre eles é qual software realiza o processo de autenticação. Autenticação é o processo de confirmação da identidade de um usuário que está se conectando ao SQL Server. Depois que a autenticação for executada, o SQL Server poderá verificar se o usuário tem permissão para se conectar a um recurso solicitado, como um banco de dados. Se o usuário tiver permissão para se conectar ao banco de dados, o SQL Server permitirá que a solicitação de conexão seja bem-sucedida, caso contrário, a conexão falhará. Este processo de verificação da permissão do usuário também é chamado de autorização.
· A Autenticação do Windows (também conhecida como Autenticação Confiável ou Segurança Integrada) utiliza a identidade do usuário do Windows que faz a solicitação de conexão para realizar a autorização ao banco de dados. Nesse caso, a cadeia de conexão não precisa fornecer um nome de usuário e uma senha explícitos. O ASP.NET é executado como um usuário local chamado "ASPNET" (ou "Serviço de Rede" no IIS 6.0), portanto, ao usar a Autenticação do Windows, o SQL verificará se esse usuário tem permissão para usar o banco de dados. Neste ponto, todos os aplicativos ASP.NET estão sendo executados com esse mesmo usuário, portanto o modo de segurança os trata igualmente. Embora seja possível executar cada aplicativo em um processo ASP.NET separado (um usuário separado executando cada aplicativo) ou representar a identidade do usuário Windows do cliente navegador que faz a solicitação de conexão, isso está além do escopo deste livro. . No entanto, a representação do cliente é o uso mais comum da Autenticação do Windows em aplicativos Web.
· A Autenticação SQL verifica nomes de usuário e senhas fornecidos explicitamente em relação aos usuários configurados no SQL Server (sem envolver o sistema operacional). Nesse caso, cada aplicativo em execução no processo ASP.NET pode se conectar ao banco de dados com um certificado separado, isolando razoavelmente os aplicativos (o aplicativo A não conseguirá se conectar ao banco de dados se não tiver o nome de usuário e a senha de B) . Não é possível conectar-se ao banco de dados de B). Este é o modo de autenticação mais comum usado para aplicações web implantadas, especialmente no caso de hospedagem compartilhada. Uma pequena desvantagem é que exige que o aplicativo retenha a senha da conta do usuário usada para se conectar e, se essa senha for obtida por um usuário mal-intencionado, a segurança do banco de dados será comprometida. Entretanto, como você verá mais adiante neste livro, o ASP.NET fornece uma maneira segura de armazenar a senha de Autenticação SQL em um formato criptografado no arquivo Web.config, reduzindo assim o risco de a senha ser obtida.
· Modo Misto é uma configuração do SQL Server que permite a Autenticação do Windows e a Autenticação do SQL.
Ao instalar o SQL Server ou SSE, você deve escolher um modo de autenticação. No SQL Server, existe um assistente para ajudá-lo a escolher durante as etapas de segurança, enquanto no SSE a opção padrão é Autenticação do Windows. Se desejar instalar a Autenticação SQL, você deverá configurá-la explicitamente. Este artigo usa a autenticação do Windows.
Se você instalou o SQL Server ou SSE, você pode visualizar o modo de autenticação especificado abrindo o RegEdit (é claro que você precisa fazer backup dele primeiro), encontrar HKey_Local_Machine/Software/Microsoft/Microsoft SQL Server e procurar LoginMode. Uma subchave de registro com valor 1 representa a autenticação do Windows, enquanto o valor 2 representa o modo de autenticação mista.
A Tabela 3-1 resume as diferenças entre esses modos.
Tabela 3-1
Nome | substituível | ||
da | Autenticação SQL | ||
Segurança Integrada | Não, mas a Autenticação de Modo Misto permite o uso da Autenticação do Windows ou do SQL. | ||
Local | da | ||
lista | de usuáriosda | Internet | |
e dos processos de autenticação | do | Windows | |
SQL | Server | . | |
=usuário verdadeiro | =nome de usuário; senha = senha | ||
Usuários de aplicativos da Web ASP.NET | Processo ASP.NET, ASPNET (IIS 5.x) ou Serviço de Rede (IIS 6) | Os usuários de SQL | |
têm a vantagem | de melhor segurança podemcontrolar | os eventos SQL do usuário e o rastreamento de atividades do Windows; | ser implantado na máquina host sem criar uma nova conta independente do sistema operacional; O site de intranet hospedado requer apenas habilidades moderadas Fornece uma maneira mais flexível para os aplicativos se conectarem a cada banco de dados com certificados diferentes |
Desvantagens | Fornecer um certificado do Windows para um aplicativo da web tem o potencial de definir o escopo de permissões no sistema operacional muito grande | As senhas são armazenadas no aplicativo da web (o que não é o caso na autenticação do Windows). Confirme se a senha está salva no arquivo Web.config e criptografada. Permite operações de baixo nível para aplicações web usando certificados sa. Sempre crie novos certificados para aplicativos Web ASP.NET e conceda apenas as permissões necessárias |