我正在准备一个环境,其中的远程桌面连接代理的 HA 将基于 SQL 服务器(Windows Server Standard 2022)
就我而言,SQL 服务器是 MS SQL Server Express 2022 - 我已经正确准备了 DNS、AD 中的组、为该组授予的权限、关闭的防火墙以及适当的 ODBC 连接器。
但每次我都收到连接错误 - 数据库是从 SSMS 创建的(空)。
Driver={ODBC Driver 18 for SQL Server};Server=tcp:SERVERNAME\NAMEDINSTANCE,1433;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=rds_db
我在配置中使用了这两个路径:https://rdr-it.com/en/rds-farm-high-availability-service-broker-configuration/ https://woshub.com/configure-rds-connection-broker-high-availability-windows-server/
SQL Express 有时不是问题所在吗?我有端口 1433,但向导明确显示端口 1434
我还要注意什么?
如何解决这个问题?
请帮忙,我在实验室尝试同样的事情 - 但出现同样的错误。
快速摘要:
sql.lab.net - 带有新空数据库的 sql server express:rds_db
rds1.lab.net - 具有代理角色的第一个 rds 主机
rds2.lab.net-第二个 rds 主机
在活动目录中,我有一个包含这两个主机的安全组
在 sql im 中已登录映射到此安全组 (dbowner、dbcreator、public、sysadmin)
所有防火墙均已关闭 - 检查从 rds1.lab.net 到 sql.lab.net 的 telnet 端口 1433 是否打开
在本地组 RDS Managment Server 中的 rds1.lab.net 和 rds2.lab.net 上,我添加主机 rds1、rds2 和网络服务
在 DNS 中,我在反向 lab.net 区域中有两个记录 A,名称分别为 rds.lab.net(rds1 的 ip)和 rds.lab.net(rds2 的 ip)-循环
答案1
您需要检查以下事项:
如果要以这种方式连接,请确保您的实例确实在侦听 TCP 1433。打开Sql Server Configuration Manager
。展开SQL Server Network Configuration
并选择Protocols for YOURINSTANCE
。右键单击TCP/IP
并更改为IP Addresses
。您的 IPv4 地址或需要将 TCP 端口设置为 1433。通过在选项卡中IPALL
查找 sqlserver 进程来验证这一点。也可以尝试使用 SSMS 从另一台主机进行连接。Resource Monitor
Network
Listening Ports
您要使用的 ODBC 驱动程序是否已安装?在选项卡ODBC Data Source Administator
中检查Drivers
。您要配置的应用程序是否支持它?出于测试目的,请尝试使用Native Client
。
也许也可以检查一下这个文档:将 RD 连接代理服务器添加到部署并配置高可用性
答案2
我知道这个求助请求在我回复时已经是九个月前了,但是我也遇到过同样的问题,也许对我有用的方法也会对别人有所帮助。
A在 Microsoft 的 SQL Server 博客上发表文章解释:
与几年前在 Web 浏览器中进行的 HTTP 到 HTTPS 默认更改(以及出于安全原因)类似,我们将
Encrypt
连接选项的默认值从更改no
为yes
/mandatory
。(添加了新的加密值“强制”和“可选”,分别与“是”和“否”同义,以更好地描述加密行为。)...如果您受到加密更改的影响,请采取以下措施之一(按推荐顺序):
- 在您的服务器上安装受信任的证书。
- 将客户端的加密连接字符串设置(或连接属性)更改为可选/否。
在连接字符串末尾添加“Encrypt=Optional;”后,我就能连接到数据库了。
以同样的方式修改海报的连接字符串应该有效:
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;