Perdoe-me se essa for uma pergunta fácil, mas tentei encontrar uma resposta, mas realmente não sei o que procurar (sou um desenvolvedor de software, com apenas alguma experiência limitada como DBA).
Temos servidores SQL de teste configurados com 3 instâncias cada:
TSTSQL01\Enterprise
TSTSQL01\Warehouse
TSTSQL01\Legacy
TSTSQL02\Enterprise
TSTSQL02\Warehouse
TSTSQL02\Legacy
TSTSQL03\Enterprise
...
Na produção não usamos instâncias, temos 3 servidores separados:
PRDSQL01 --"Enterprise" server
PRDSQL02 --"Warehouse" server
PRDSQL03 --"Legacy" server
Devido às limitações do nosso aplicativo COBOL legado, preciso de uma string de conexão que tenha EXATAMENTE 8 caracteres para corresponder ao comprimento das strings de conexão de produção. O que quero fazer é criar um alias para cada servidor sql de teste que permita isso, usando o exemplo tstsql01 acima, idealmente ficaria assim:
TSQL1ENT --maps to TSTSQL01\Enterprise
TSQL1WAR --maps to TSTSQL01\Warehouse
TSQL1LEG --maps to TSTSQL01\Legacy
Minha solução alternativa atual é usar o SQL Configuration Manager para adicionar um alias . Isso me permite conectar ao banco de dados naquele servidor, mas não em estações de trabalho locais. Nosso aplicativo COBOL legado executa 75% do código do servidor, então ele funciona para isso. Mas os 25% restantes do código são executados localmente em suas estações de trabalho. Isso significa que tenho que adicionar esse alias na máquina de cada testador (eu criei um script via powershell, mas os testadores não são administradores, então requer uma solicitação de help desk para cada pessoa para cada servidor de teste).
Agradecemos desde já a ajuda!
Não existe um alias global, os aliases são artefatos dos drivers e, como você descobriu, são locais ao perfil.
A maneira correta de lidar com isso (além de não triplicar as instâncias) é: