使用BCP工具导入CSV至Azure SQL遇证书链不受信任错误求助
使用bcp导入CSV到Azure SQL Server的证书信任问题解决指引
我尝试用Bulk Copy Program (bcp)工具将CSV文件批量导入Azure SQL Server,但始终失败,报错:证书链由不受信任的机构颁发。
使用的bcp脚本如下:
bcp DestinationDatabase.Table IN ` "C:\Data\CSVDataNeedingImported.csv" ` -c -G ` -U myAzureUserName@domain.com ` -P $pass ` -S AzureServerName
完整错误信息:
SQLState = 08001, NativeError = -2146893019 Error = [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: The certificate chain was issued by an authority that is not trusted SQLState = 08001, NativeError = -2146893019 Error = [Microsoft][ODBC Driver 17 for SQL Server]Client unable to establish connection
解决步骤
方法一:临时绕过证书验证(测试环境适用)
在bcp命令中添加-K TrustServerCertificate=yes参数,强制信任服务器证书,修改后的脚本:
bcp DestinationDatabase.Table IN ` "C:\Data\CSVDataNeedingImported.csv" ` -c -G ` -U myAzureUserName@domain.com ` -P $pass ` -S AzureServerName ` -K TrustServerCertificate=yes
方法二:安装受信任的根证书(生产环境推荐)
Azure SQL Server使用DigiCert的根证书,将其安装到本地计算机的受信任根证书存储:
- 下载DigiCert Global Root G2证书文件
- 双击打开证书文件,点击「安装证书」,选择「本地计算机」,点击下一步
- 选择「将所有证书放入下列存储」,点击「浏览」,选择「受信任的根证书颁发机构」,完成安装
- 重启PowerShell后重新执行bcp命令
方法三:更新ODBC驱动
确保安装的是最新版的ODBC Driver 17或18 for SQL Server,旧版本可能存在Azure证书信任兼容性问题,前往微软官网下载并更新驱动。
内容的提问来源于stack exchange,提问作者Code Novice
相关产品推荐
相关产品推荐

