SQL Management Studio (versiones anteriores a 2016)
Desafortunadamente, hay algunas advertencias que hacen que el uso de la intención de aplicación en SQL Management Studio sea algo doloroso:
Para conectarse manualmente con la intención de solo lectura, después de abrir el cuadro de diálogo Conectar al servidor desde el Explorador de objetos, los usuarios deben recordar:
- Haga clic en Opciones >> .
- Vaya a la pestaña Parámetros de conexión adicionales .
- Ingrese el parámetro adicional como ApplicationIntent = ReadOnly;
- (Nota: Los usuarios no deben hacer clic en el botón Opciones << después de ingresar los Parámetros de conexión adicionales o los parámetros se perderán).
- Haz clic en Conectar .
- Siempre inicie las ventanas de consulta haciendo clic derecho en la base de datos deseada en la vista Explorador de objetos y eligiendo Nueva consulta para evitar encontrarse con la advertencia # 3 a continuación.
Las advertencias que se aplican son las siguientes:
- Aunque puede hacer que SQL Management Studio se conecte con la intención de solo lectura, no almacena los parámetros de conexión adicionales cuando se agrega una conexión a servidores registrados.
- El comportamiento al editar manualmente los servidores registrados localmente en el archivo RegSrvr.xml para agregar la intención de la aplicación es extremadamente inconsistente y se sobrescribirá cada vez que se realice un cambio a través de la GUI, lo que hace que esta solución no sea confiable.
- La base de datos Always On debe seleccionarse antes de abrir la ventana de consulta; de lo contrario, la conexión se enruta al servidor primario. Si intenta seleccionar la base de datos utilizando el menú desplegable de la ventana de consulta después de que la ventana de consulta ya se haya abierto a una base de datos que no esté siempre activada, obtendrá un cuadro de diálogo de error. Si intenta cambiar la base de datos a una base de datos Always On con una instrucción USE después de que la ventana de consulta ya se haya abierto a una base de datos no Always On, los resultados se verán así cuando intente ejecutar la 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 (versiones 2016 o posterior)
SQL Server Management Studio 2016 o superior puede conectarse con la intención de aplicación de solo lectura (utilizando los mismos 6 pasos que las versiones anteriores) y almacena los parámetros de conexión adicionales. Todavía hay algunas advertencias:
- La vista del Explorador de objetos no enumerará ninguna de las tablas u otros objetos en las bases de datos AlwaysOn. Intentar expandirlos da como resultado un mensaje de acceso denegado.
- No puede tener una conexión de solo lectura y una conexión que no sea de solo lectura para el mismo oyente abierto al mismo tiempo.
- Intellisense para nombres de objetos en la base de datos no funciona. (Curiosamente, los objetos se enumeran muy bien en el Diseñador de consultas que puede iniciar utilizando Design Query en el Editor ... desde el menú contextual).
- La advertencia 3 de las advertencias de las versiones anteriores todavía se aplica.
Productos de terceros
LinqPad almacena la cadena de conexión completa, incluida la intención de la aplicación y la base de datos cuando guarda una conexión y, por lo tanto, podría ser una opción viable para realizar consultas de solo lectura en las bases de datos Always On.
¿Has probado el script de PowerShell, pero utilizas otra ortografía (con un espacio) para la intención de la aplicación? ¿O tengo los métodos de conexión mezclados?
Conéctese a SQL Server utilizando la intención de la aplicación de solo lectura
fuente
¿Es posible que cree un archivo de configuración y luego cree automáticamente los servidores registrados necesarios en SSMS? Tal como se menciona en mi artículo MSSQLTips:
Automatizar el registro y el mantenimiento de servidores en SQL Server Management Studio (SSMS)
fuente
Esto se ha solucionado en SQL 2016 SSMS cuando se usa con servidores registrados. Pude registrar una conexión de intención de solo lectura como parte del grupo de servidores locales y abrir la conexión guardada para uso futuro. Gracias por la ayuda con esto.
fuente
No puedo comentar pero estoy agregando a la respuesta de DBAUser.
No pude ver una opción para agregar Intención de aplicación en la GUI al configurar la conexión dentro del área de servidores registrados.
Tuve que conectarme usando el explorador de objetos (usando
Data Source=<Listener>;Initial Catalog=<Database>;ApplicationIntent=ReadOnly
) y luego registrar el servidor una vez que estuve conectado.O agregue
Initial Catalog=<Database>;ApplicationIntent=ReadOnly
a la cadena de conexión en el archivo .regsrvr.fuente