Como adicionar grupo de usuários do Active Directory como login no SQL Server


108

Eu tenho um aplicativo .net que está se conectando ao SQL Server usando a autenticação do Windows.

Não podemos usar a autenticação do SQL Server no aplicativo. Temos muitos usuários do Active Directory lá para nosso projeto. Portanto, temos que criar uma conta de login separada para cada usuário do Active Directory no SQL Server, em vez de criar uma conta de login separada para cada usuário do AD. Existe alguma maneira de usar o grupo de usuários do Active Directory no SQL Server?

Respostas:


162

No SQL Server Management Studio, acesse Object Explorer > (your server) > Security > Loginse clique com o botão direito New Login:

insira a descrição da imagem aqui

Em seguida, na caixa de diálogo que aparece, escolha os tipos de objetos que você deseja ver ( Groupsé desabilitado por padrão - marque-o!) E escolha o local onde deseja procurar seus objetos (por exemplo, usar Entire Directory) e, em seguida, encontre seu grupo AD .

insira a descrição da imagem aqui

Agora você tem um logon normal do SQL Server - exatamente como quando cria um para um único usuário AD. Dê a esse novo login as permissões nos bancos de dados de que ele precisa e pronto!

Qualquer membro desse grupo AD agora pode fazer login no SQL Server e usar seu banco de dados.


Existe alguma chance de criar grupos no mysql como acima?
uzay95 de

2
Obrigado por uma resposta muito clara com capturas de tela anotadas! Gostaria que todas as respostas fossem assim ...
NickG

1
@NickG: Usei o Paint.NET gratuito para carregar a imagem e inserir os retângulos vermelhos arredondados
marc_s

7
Isso não funciona para mim. Tenho um grupo "DataAccess" do Windows, do qual "UserX" é membro. Eu criei um login para o grupo DataAccess e configurei o mapeamento de usuário do login para ter acesso público, datareader e datawriter em um banco de dados. O usuário não pode fazer login. Se eu adicionar o usuário especificamente e atribuir exatamente a mesma permissão de mapeamento, ele poderá fazer login. Quando clico em Protegíveis> Permissões efetivas para o grupo, aparece a mensagem "Não é possível executar como servidor principal porque o principal 'GroupName' não sai, esse tipo de principal não pode ser personificado ou você não tem permissão. "
Triynko

1
@Tim: o nome do usuário - ainda é o usuário que efetua login - ele não está autorizado diretamente - como um usuário - mas por ser membro daquele grupo que tem permissões
marc_s

21

Você pode usar o T-SQL:

use master
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName

Eu uso isso como parte da restauração do servidor de produção para a máquina de teste:

USE master
GO
ALTER DATABASE yourDbName SET OFFLINE WITH ROLLBACK IMMEDIATE
RESTORE DATABASE yourDbName FROM DISK = 'd:\DropBox\backup\myDB.bak'
ALTER DATABASE yourDbName SET ONLINE
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO

Você precisará usar nomes de serviços localizados no caso do Windows em alemão ou francês, consulte Como criar um logon do SQL Server para uma conta de serviço em um Windows que não seja em inglês?


Caso você também precise definir o login / principal no nível do banco de dados, aqui está outra resposta que achei útil dba.stackexchange.com/a/2578/60876
Agostino

Eu me pergunto se isso pode ser usado para conceder a um determinado grupo do Active Directory acesso de leitura a um determinado esquema - no pseudo sql, CREATE LOGIN ... WITH DEFAULT_SCHEMAos pontos ... devem fazer referência a um determinado grupo de anúncios. Temos vários grupos e gostaríamos de dar a um grupo de diretório ativo accountantsacesso ao esquema ´A´, mas não ao esquema ´B´ e ´C´. Da mesma forma, o grupo ´billing` só deve ter acesso ao esquema ´B´. Como front-end, estamos usando acesso msft.
surfmuggle

0

Vá para o SQL Server Management Studio, navegue até Segurança, vá para Logins e clique com o botão direito. Um Menu aparecerá com um botão dizendo "Novo Login". Lá você poderá adicionar usuários e / ou grupos do Active Directory às suas "permissões" do SQL Server. Espero que isto ajude


0

Aqui está minha observação. Eu criei um login (somente leitura) para uma conta de usuário do Windows de grupo (AD), mas está atuando de forma desafiadora em diferentes servidores SQL. Nos servidores SQl em que os usuários não podem ver os bancos de dados, adicionei a definição de exibição verificada e também dei permissão de execução do banco de dados ao banco de dados mestre para evitar o erro 229. Não tenho esse problema se criar um login para um usuário.


Isso poderia ter sido comentado em vez de usar uma resposta. Mas você não pode comentar ainda. Então não haha ​​^^
finnmglas
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.