Usamos a autenticação do Windows, mas não criamos logins para usuários específicos do AD. Criamos logins para grupos AD e os usuários têm acesso por serem seus membros.
Percebi que quando tento criar um mapeamento para alguns usuários do AD (não os grupos) usando um comando como abaixo, além de criar o mapeamento é criado o login DOMAIN\ADlogin .
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'RemoteName',
@locallogin = N'DOMAIN\ADlogin',
@useself = N'False',
@rmtuser = N'rmtuser',
@rmtpassword = N'password'
Se eu soltar o login, o mapeamento também será descartado.
DROP LOGIN [DOMAIN\ADlogin]
Existe alguma maneira de evitar a criação de logins, mas obter o mapeamento para usuários do AD? Parece-me impossível, mas talvez alguém tenha uma boa experiência em resolver esse problema.
Microsoft SQL Server 2017 (RTM-CU9) (KB4341265) - 14.0.3030.27 (X64) 29 de junho de 2018 18:02:47 Copyright (C) 2017 Microsoft Corporation Standard Edition (64 bits) no Windows Server 2016 Standard 10.0 (Build 14393) : )
Se você executar este código:
Você poderá encontrar um pedaço de código responsável pela criação de login win:
Aqui
sys.sp_MSaddlogin_implicit_ntlogin @locallogin
cria o login correspondente e seuprincipal_id
próximo será recuperado por este código:(aqui
U
indicaWINDOWS_LOGIN
)E então será passado para criar um mapeamento:
Portanto, a resposta para sua pergunta é NÃO, a menos que você mapeie todos os seus logins para o mesmo
remote_user
passandoNULL
como@locallogin
.