
Estou construindo uma instância do SQL Server para fins de geração de relatórios. Meu plano é usar grupos AD para logins de servidores e bancos de dados. Tenho vários grupos com funções diferentes (administrador, desenvolvedor, usuário etc.) e gostaria de mapear essas funções em funções de banco de dados SQL Server (db_owner, db_datawriter etc.). Quais são os prós e os contras de usar grupos AD para logins? Que tipo de problemas você notou?
Responder1
Além da sobrecarga de ter que gerenciar o AD, não acho que haja contras. Usar credenciais de login do Windows para SQL Server, especialmente da maneira que você fala com grupos de funções organizados, é certamente uma recomendação de práticas recomendadas da Microsoft. Se conseguissem, eliminariam completamente a opção de autenticação do SQL Server.
Termo aditivo:
Se você estiver usando SQL 2005 ou superior, use a opção Default Schema (não acho que exista uma opção GUI para isso), por:
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = schemaName
| LOGIN = loginName
ou seja:
ALTER USER DOMAIN\UserName DEFAULT_SCHEMA = dbo;
GO
Responder2
O gerenciamento de grupos do Active Directory também pode ser delegado a administradores que não sejam do Active Directory, o que pode ser um recurso útil, exceto uma ferramenta de gerenciamento de aplicativos.
Responder3
O maior golpe que encontrei são aplicativos de terceiros que não suportam autenticação AD e insistem em usar autenticação SQL, geralmente com logins criativos como admin/admin; exceto isso, o único outro problema é que você não tem visibilidade total no servidor SQL de quem tem acesso aos bancos de dados, você só vê o grupo, ou vê os usuários quando eles estão ativos, ou se eles possuem objetos. Mas, desde que o seu DBA tenha acesso ao Active Directory, se precisar de informações no nível do usuário, o problema é muito pequeno.