SQL Management Studio (versões anteriores a 2016)
Infelizmente, existem algumas ressalvas que tornam o uso do Application Intent no SQL Management Studio algo doloroso:
Para se conectar manualmente com a intenção ReadOnly, depois de abrir a caixa de diálogo Conectar ao Servidor no Pesquisador de Objetos, os usuários devem se lembrar de:
- Clique em Opções >> .
- Vá para a guia Parâmetros adicionais de conexão .
- Digite o parâmetro adicional como ApplicationIntent = ReadOnly;
- (Nota: Os usuários não devem clicar no botão Opções << depois de inserir os Parâmetros adicionais de conexão, caso contrário os parâmetros serão perdidos.)
- Clique em conectar .
- Sempre inicie as janelas de consulta clicando com o botão direito do mouse no banco de dados desejado na visualização Object Explorer e escolhendo New Query para evitar a execução da ressalva nº 3 abaixo.
As advertências aplicáveis são as seguintes:
- Embora você possa fazer com que o SQL Management Studio se conecte ao Read Only Intent, ele não armazena os Parâmetros Adicionais de Conexão quando uma conexão é adicionada aos Servidores Registrados.
- O comportamento ao editar manualmente os servidores registrados localmente no arquivo RegSrvr.xml para adicionar o Intenção do Aplicativo é extremamente inconsistente e será sobrescrito sempre que uma alteração for feita na GUI, tornando esta solução alternativa não confiável.
- O banco de dados Always On deve ser selecionado antes da janela de consulta ser aberta; caso contrário, a conexão será roteada para o servidor principal. Se você tentar selecionar o banco de dados usando a lista suspensa da janela de consulta após a janela de consulta já ter sido aberta em um banco de dados que não seja Always On, você receberá uma caixa de diálogo de erro. Se você tentar alterar o banco de dados para um banco de dados Always On com uma instrução USE após a janela de consulta já ter sido aberta para um banco de dados não Always Always, os resultados serão assim quando você tentar executar a consulta SQL:
Msg 979, Level 14, State 1, Line 1
The target database ('AlwaysOnDatabase') is in an availability group
and currently does not allow read only connections. For more
information about application intent, see SQL Server Books Online.
SQL Management Studio (versões 2016 ou posterior)
O SQL Server Management Studio 2016 ou superior pode conectar-se ao Intenção de Aplicativo Somente Leitura (usando as mesmas 6 etapas das versões anteriores) e armazena os Parâmetros Adicionais de Conexão. Ainda existem algumas ressalvas:
- A exibição do Pesquisador de Objetos não enumerará nenhuma das tabelas ou outros objetos nos bancos de dados AlwaysOn. Tentar expandi-los resulta em uma mensagem de acesso negado.
- Você não pode ter uma conexão somente leitura e não somente leitura com o mesmo ouvinte aberta ao mesmo tempo.
- O Intellisense para nomes de objetos no banco de dados não funciona. (Estranhamente, os Objetos são enumerados perfeitamente no Query Designer que você pode iniciar usando o Design Query no Editor ... no menu do botão direito do mouse.)
- A ressalva 3 das advertências das versões anteriores ainda se aplica.
Produtos de terceiros
O LinqPad armazena toda a cadeia de conexão, incluindo Application Intent e o banco de dados, quando você salva uma conexão e, portanto, pode ser uma opção viável para executar consultas Somente Leitura nos bancos de dados Always On.
Você já tentou o script do PowerShell, mas usa outra ortografia (com espaço) para a intenção do aplicativo? Ou tenho os métodos de conexão misturados?
Conectar-se ao SQL Server usando somente leitura de intenção de aplicativo
fonte
É possível que você crie um arquivo de configuração e crie automaticamente os servidores registrados necessários no SSMS? Assim como mencionado no meu artigo MSSQLTips:
Automatize o registro e a manutenção de servidores no SQL Server Management Studio (SSMS)
fonte
Isso foi corrigido no SQL 2016 SSMS ao usar com servidores registrados. Consegui registrar uma conexão ReadOnly Intent como parte do grupo de servidores locais e abrir a conexão salva para uso futuro. Obrigado pela ajuda com isso.
fonte
Não posso comentar, mas estou adicionando à resposta do DBAUser.
Não pude ver uma opção para adicionar o Application Intent na GUI ao configurar a conexão na área de servidores registrados.
Eu tive que conectar usando o explorador de objetos (usando
Data Source=<Listener>;Initial Catalog=<Database>;ApplicationIntent=ReadOnly
) e registrar o servidor depois que eu estava conectado.Ou adicione
Initial Catalog=<Database>;ApplicationIntent=ReadOnly
à cadeia de conexão no arquivo .regsrvr.fonte