Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use usuários de banco de dados independentes para autenticar conexões do SQL Server e do Banco de Dados SQL no nível do banco de dados. Um banco de dados independente é um banco de dados isolado de outros bancos de dados e da instância do Banco de Dados SQL Server/SQL (e do banco de dados mestre) que hospeda o banco de dados. O SQL Server dá suporte a usuários contidos no banco de dados para autenticação do Windows e do SQL Server. Ao usar o Banco de Dados SQL, combine usuários de banco de dados independentes com regras de firewall no nível do banco de dados. Este tópico analisa as diferenças e os benefícios do uso do modelo de banco de dados independente em comparação com o modelo de logon/usuário tradicional e as regras de firewall no nível do servidor ou do Windows. Cenários específicos, capacidade de gerenciamento ou lógica de negócios de aplicativo ainda podem exigir o uso de regras tradicionais de logon/modelo de usuário e firewall no nível do servidor.
Observação
À medida que a Microsoft evolui o serviço de banco de dados SQL e avança para SLAs mais elevadas e garantidas, pode ser necessário adotar o modelo de usuário de banco de dados contido e regras de firewall com escopo de banco de dados para alcançar o SLA de maior disponibilidade e taxas máximas de login mais altas para um determinado banco de dados. A Microsoft incentiva você a considerar essas alterações hoje.
Logon tradicional e modelo de usuário
No modelo de conexão tradicional, usuários do Windows ou membros de grupos do Windows se conectam ao Mecanismo de Banco de Dados fornecendo credenciais de usuário ou grupo autenticadas pelo Windows. Ou a conexão fornece um nome e uma senha e se conecta usando a autenticação do SQL Server (que é a única opção ao se conectar ao Banco de Dados SQL). Em ambos os casos, o banco de dados mestre deve ter um logon que corresponda às credenciais de conexão. Depois que o Mecanismo de Banco de Dados confirma as credenciais de autenticação do Windows ou autentica as credenciais de autenticação do SQL Server, a conexão normalmente tenta se conectar a um banco de dados do usuário. Para se conectar a um banco de dados de usuário, o logon deve ser mapeado para (ou seja, associado a) um usuário de banco de dados no banco de dados do usuário. A cadeia de conexão também pode especificar a conexão a um banco de dados específico que é opcional no SQL Server, mas necessário no Banco de Dados SQL.
O princípio importante é que tanto o login (no banco de dados mestre) quanto o usuário (no banco de dados do usuário) devem existir e estar relacionados. Isso significa que a conexão com o banco de dados do usuário tem uma dependência sobre o logon no banco de dados mestre e isso limita a capacidade do banco de dados de ser movido para um SQL Server de hospedagem diferente ou servidor do Banco de Dados SQL do Azure. E se, por qualquer motivo, uma conexão com o banco de dados mestre não estiver disponível (por exemplo, um failover estiver em andamento), o tempo de conexão geral será aumentado ou a conexão poderá acabar. Consequentemente, isso pode reduzir a escalabilidade da conexão.
Modelo de usuário de banco de dados independente
No modelo de usuário do banco de dados contido, o logon no banco de dados mestre não existe. Em vez disso, o processo de autenticação ocorre no banco de dados do usuário e o usuário no banco de dados não tem um logon associado no banco de dados mestre. O modelo de usuário contido no banco de dados dá suporte à autenticação do Windows (no SQL Server) e à autenticação do SQL Server (tanto no SQL Server quanto no SQL Database). Para se conectar como um usuário de banco de dados independente, a cadeia de conexão deve sempre conter um parâmetro para o banco de dados do usuário para que o Mecanismo de Banco de Dados saiba qual banco de dados é responsável por gerenciar o processo de autenticação. A atividade do usuário de banco de dados independente é limitada ao banco de dados de autenticação, portanto, ao se conectar como um usuário de banco de dados independente, a conta de usuário do banco de dados deve ser criada independentemente em cada banco de dados de que o usuário precisará. Para alterar bancos de dados, os usuários do Banco de Dados SQL devem criar uma nova conexão. Usuários de banco de dados independentes no SQL Server poderão alterar bancos de dados se um usuário idêntico estiver presente em outro banco de dados.
Para o Banco de Dados SQL, nenhuma alteração é necessária para a cadeia de conexão ao alternar do modelo tradicional para o modelo de usuário de banco de dados contido. Para conexões do SQL Server, o nome do banco de dados deve ser adicionado à cadeia de conexão, caso ainda não esteja presente.
Importante
Ao usar o modelo tradicional, as funções no nível do servidor e as permissões de nível de servidor podem limitar o acesso a todos os bancos de dados. Ao usar o modelo de banco de dados independente, os proprietários de banco de dados e os usuários do banco de dados com a permissão ALTER ANY USER podem conceder acesso ao banco de dados. Isso reduz o controle de acesso de logons de servidor com privilégios altos e expande o controle de acesso para incluir usuários de banco de dados com privilégios elevados.
Firewalls (barreiras de segurança)
SQL Server
As regras de firewall do Windows se aplicam a todas as conexões e têm os mesmos efeitos sobre logons (conexões de modelo tradicionais) e usuários de banco de dados contidos. Para obter mais informações sobre o firewall do Windows, consulte Configurar um Firewall do Windows para Acesso ao Mecanismo de Banco de Dados.
Firewalls do Banco de Dados SQL
O Banco de Dados SQL permite regras de firewall separadas para conexões no nível do servidor (logons) e para conexões no nível do banco de dados (usuários de banco de dados independentes). Ao se conectar a um banco de dados do usuário, as regras do firewall do banco de dados são verificadas primeiro. Se não houver nenhuma regra que permita o acesso ao banco de dados, as regras de firewall no nível do servidor serão verificadas, o que exigirá acesso ao banco de dados mestre do servidor lógico. As regras de firewall no nível do banco de dados combinadas com usuários de banco de dados independentes podem eliminar a necessidade de acessar o banco de dados mestre do servidor durante a conexão, fornecendo escalabilidade de conexão aprimorada.
Para obter mais informações sobre regras de firewall do Banco de Dados SQL, consulte os seguintes tópicos:
Diferenças de sintaxe
| Modelo tradicional | Modelo de usuário de banco de dados contido |
|---|---|
Quando conectado ao banco de dados mestre:CREATE LOGIN login_name WITH PASSWORD = 'strong_password';Em seguida, quando conectado a um banco de dados de usuário: CREATE USER 'user_name' FOR LOGIN 'login_name'; |
Quando conectado a um banco de dados de usuário:CREATE USER user_name WITH PASSWORD = 'strong_password'; |
| Modelo tradicional | Modelo de usuário de banco de dados contido |
|---|---|
Para alterar a senha, no contexto do banco de dados mestre:ALTER LOGIN login_name WITH PASSWORD = 'strong_password'; |
Para alterar a senha, no contexto do banco de dados do usuário:ALTER USER user_name WITH PASSWORD = 'strong_password'; |
Observações
No SQL Server, os usuários contidos do banco de dados devem estar habilitados para a instância do SQL Server. Para obter mais informações, consulte a opção de configuração do servidor de autenticação de banco de dados contida.
Usuários de banco de dados contidos e logons com nomes não sobrepostos podem coexistir em seus aplicativos.
Se houver um logon no banco de dados mestre com o nome nome1 e você criar um usuário de banco de dados independente chamado nome1, quando um nome de banco de dados for fornecido na cadeia de conexão, o contexto do usuário do banco de dados será escolhido em vez do contexto de logon ao se conectar ao banco de dados. Ou seja, o usuário do banco de dados contido terá precedência sobre logons com o mesmo nome.
No Banco de Dados SQL, o nome do usuário do banco de dados independente não pode ser o mesmo que o nome da conta de administrador do servidor.
A conta de administrador do servidor do Banco de Dados SQL nunca pode ser um usuário de banco de dados independente. O administrador do servidor tem permissões suficientes para criar e gerenciar usuários de banco de dados independentes. O administrador do servidor pode conceder permissões aos usuários de banco de dados contidos em bancos de dados de usuário.
Como os usuários contidos de banco de dados são principais de nível de banco de dados, você precisa criar usuários contidos de banco de dados em cada banco de dados onde eles serão utilizados. A identidade é confinada ao banco de dados e é independente em todos os aspectos de um usuário com o mesmo nome e a mesma senha em outro banco de dados no mesmo servidor.
Use as mesmas senhas de força que normalmente você usaria para logons.
Consulte Também
Bancos de dados independentes
Práticas recomendadas de segurança com bancos de dados independentes
CREATE USER (Transact-SQL)