我已成功创建了主密钥、数据库范围凭据、外部数据源和外部表,以引用同一服务器上托管的另一个AZ SQL数据库,但无法查询外部表。
以下代码成功运行:
--创建主密钥通过密码创建主密钥加密=“MyPassword”;--创建数据库范围凭据创建数据库范围的凭据数据库_SCOPED_CREDENTIAL与IDENTITY=“我的用户名”,SECRET='MySecret';--创建外部数据源创建外部数据源DS_EXTERNAL_DB与(类型=关系型数据库管理系统,LOCATION=“MyServerName.database.windows.net”,DATABASE_NAME='MyDBName',CREDENTIAL=DB_scoped_CREDENTIAL);--创建外部表创建外部表格agencies_ext(id int,[名称]varchar(150),coc varchar(50),[状态]tinyint,ref_county整数,客户tinyint,添加日期日期时间,last_updated日期时间,ref_user_updated整数,受害者服务提供者tinyint,ref_geolocation int,参考地理位置int,删除的tinyint)与(DATA_SOURCE=DS_External_DB,SCHEMA_NAME='dbo',OBJECT_NAME='代理');
但在运行简单查询时:
从agencies_ext中选择*;
我收到以下错误消息:
消息46832,级别16,状态3,第42行建立与远程数据源的连接时出错:[Microsoft][ODBC Driver 17 for SQL Server]SSL Provider:目标主体名称不正确。[Microsoft][ODBC Driver 17 for SQL Server]客户端无法建立连接
我已经三次检查了所有的字符串参数,以确保没有拼写错误,也不确定为什么我无法建立到数据源的远程连接并查询外部表。Azure SQL DB中是否有任何设置可以阻止这种情况发生?创建外部数据源和外部表是否存在根本性问题?我希望此查询能够成功运行,并显示DS引用的数据库中agents表中的所有行和列_外部_数据库数据源。同样,这两个数据库都托管在同一服务器上。