SQL Server通过PolyBase访问MongoDB Atlas建外部表报13053错误如何解决
故障解决方案
该报错核心原因是SQL Server PolyBase无法和MongoDB Atlas的BI Connector建立有效连接,可按以下步骤逐一排查修复:
- 修正TLS连接配置
MongoDB Atlas的BI Connector默认强制开启TLS加密,你当前配置的tls=false会直接被Atlas拒绝连接,修改外部数据源的连接参数即可:
CREATE EXTERNAL DATA SOURCE mongodb_test WITH ( LOCATION = 'mongodb://cls-data-dev-biconnector.a8m8q.mongodb.net:27015', CONNECTION_OPTIONS = 'tls=true', CREDENTIAL = mongodb_test )
如果测试环境确实需要关闭TLS,必须先登录MongoDB Atlas控制台,在对应集群的BI Connector设置页关闭「强制TLS」选项,再使用tls=false配置。
- 检查凭据配置有效性
你使用的mongodb_test凭据需要提前创建为SQL Server的数据库范围凭据,存储MongoDB Atlas的合法访问用户名和密码,创建参考语句:
CREATE DATABASE SCOPED CREDENTIAL mongodb_test WITH IDENTITY = '你的MongoDB Atlas用户名', SECRET = '你的MongoDB Atlas对应用户密码';
同时需要确认Atlas的IP访问白名单已经放开SQL Server所在服务器的公网IP,否则也会被拦截导致连接失败。
- 修正外部表LOCATION写法
PolyBase访问MongoDB的外部表LOCATION不需要加额外方括号,格式为MongoDB库名.集合名,修改为对应写法即可:
CREATE EXTERNAL TABLE base360 ( [_id] VARCHAR(24) NOT NULL, [ds_Contexto] varchar(max) NULL ) WITH ( LOCATION='db-data.db-mng-ins-corporate-dev', DATA_SOURCE= mongodb_test );
- 验证基础连通性
在SQL Server所在服务器上使用ODBC数据源管理器或者MongoDB客户端工具,直接测试cls-data-dev-biconnector.a8m8q.mongodb.net:27015的连通性,确认端口没有被本地防火墙、运营商网络拦截。
内容的提问来源于stack exchange,提问作者Juliano Medeiros
相关产品推荐
相关产品推荐

