Usando o SQL Server 2022 Standard Edition e usuários de banco de dados independente (o que significa nenhum login SQL correspondente no nível da instância). Gostaria que os usuários do banco de dados contido pudessem usar um servidor vinculado e, especificamente, com o usuário contido mapeado para usar um nome de usuário/senha específico no banco de dados remoto. Quando tento adicionar o mapeamento usando SSMS, recebo o erro
Ocorreu uma exceção ao executar uma instrução ou lote Transact-SQL. (Microsoft.SqlServer.ConnectionInfo) 'nome de usuário' não é um login válido ou você não tem permissão. (Microsoft SQL Server, Erro: 15007)
Minha interpretação é que esse recurso de mapeamento de usuários do servidor vinculado funciona apenas com logins em nível de instância e não é possível quando o login local é um usuário de banco de dados independente. No entanto, não consigo encontrar nenhuma documentação explícita da Microsoft sobre essa limitação.
Alguém pode confirmar meu entendimento ou estou faltando algo que tornaria isso possível?
Isso não é simples, você precisa juntar duas coisas.
1.
usuários de banco de dados contidos
2.
sp_addlinkedsrvlogin
3.
sys.linked_logins
Tudo isso junto indica que, ao criar um servidor vinculado, você cria um mapeamento entre logins locais e logins remotos e pode vê-los
sys.linked_logins
comoid
s, essesid
s são idsys.server_principals
que não existem durante o uso,contained databases
portanto o mapeamento não pode ser criado. Todos os links usados na minha resposta referem-se ao SQL Server 2022, portanto nada foi alterado para servidores vinculados.