
Estoy preparando un entorno en el que el Agente de conexión a escritorio remoto para el cual HA se basará en el servidor SQL (estándar de servidor de Windows 2022)
En mi caso, el servidor SQL es MS SQL Server Express 2022: tengo DNS preparado correctamente, grupo en AD, permisos otorgados para este grupo, firewalls desactivados, conector ODBC apropiado.
Pero cada vez que aparece un error de conexión, la base de datos se crea a partir de SSMS (vacía).
Driver={ODBC Driver 18 for SQL Server};Server=tcp:SERVERNAME\NAMEDINSTANCE,1433;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=rds_db
Utilicé estas dos rutas en la configuración:https://rdr-it.com/es/rds-farm-high-availability-service-broker-configuration/ https://woshub.com/configure-rds-connection-broker-high-availability-windows-server/
¿No es SQL Express a veces el problema? Tengo el puerto 1433 y el asistente dice claramente puerto 1434
¿A qué más puedo prestarle atención?
¿Cómo resolver este problema?
Por favor, ayuda. Estoy intentando lo mismo en el laboratorio, pero el mismo error.
sumario rápido:
sql.lab.net - SQL Server Express con nueva base de datos vacía: rds_db
rds1.lab.net: primer host rds con función de intermediario
rds2.lab.net - segundo host rds
En el directorio activo tengo un grupo de seguridad con estos dos hosts.
en sql tengo el inicio de sesión asignado a este grupo de seguridad (dbowner, dbcreator, public, sysadmin)
todos los cortafuegos están inactivos: verifique que el puerto 1433 de telnet desde rds1.lab.net a sql.lab.net esté abierto
en rds1.lab.net y rds2.lab.net en el grupo local: Servidor de administración RDS. Estoy agregando hosts rds1, rds2 y servicio de red.
en DNS tengo dos registros A en la zona inversa de lab.net con el nombre rds.lab.net (ip de rds1) y rds.lab.net (ip de rds2) - round robin
Respuesta1
Aquí hay algunas cosas que debes verificar:
Asegúrese de que su instancia esté realmente escuchando en TCP 1433, si desea conectarse de esta manera. Abierto Sql Server Configuration Manager
. Expanda SQL Server Network Configuration
y seleccione Protocols for YOURINSTANCE
. Haga clic derecho TCP/IP
y cambie a IP Addresses
. Ya sea su dirección IPv4 o IPALL
debe tener el puerto TCP configurado en 1433. Verifique esto buscando el proceso sqlserver en Resource Monitor
la Network
pestaña en Listening Ports
. Quizás también intente conectarse desde otro host con SSMS.
¿Está instalado el controlador ODBC que desea utilizar? Consulte ODBC Data Source Administator
en la Drivers
pestaña. ¿Es incluso compatible con la aplicación que deseas configurar? Para realizar pruebas, intente utilizar el archivo Native Client
.
Quizás consulte esta documentación también:Agregue el servidor RD Connection Broker a la implementación y configure la alta disponibilidad
Respuesta2
Sé que esta solicitud de ayuda tiene nueve meses en el momento de mi respuesta, pero tuve problemas con el mismo problema y tal vez lo que funcionó para mí ayude a alguien más.
Apublicación en el blog de SQL Server de Microsoftexplica:
De manera similar a los cambios predeterminados de HTTP a HTTPS realizados en los navegadores web hace unos años (y las razones de seguridad para ellos), estamos cambiando el valor predeterminado de la
Encrypt
opción de conexión deno
ayes
/mandatory
. (Se han agregado nuevos valores de cifrado "obligatorios" y "opcionales", sinónimos de "sí" y "no", respectivamente, para describir mejor el comportamiento de cifrado)....El elemento de acción si se ve afectado por el cambio de cifrado es (en orden de recomendación):
- Instale un certificado confiable en su servidor.
- Cambie la configuración de la cadena de conexión Cifrar (o propiedad de conexión) de su cliente a opcional/no.
Pude conectarme a la base de datos después de agregar "Encrypt=Optional;" hasta el final de mi cadena de conexión.
Modificar la cadena de conexión del cartel de la misma manera debería funcionar:
Driver={ODBC Driver 18 for SQL Server};Server=tcp:SERVERNAME\NAMEDINSTANCE,1433;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=rds_db;Encrypt=Optional;