SQL Server for Liunx跨库查询

Linux安装SQL Server 2017,需要跨库查询,语句如下:

SELECT
    *
FROM
    OPENDATASOURCE (
        'SQLOLEDB',
        'DRIVER={SQL Server};SERVER=*.*.*.*;UID=sa;PWD=***' ).Visitor.dbo.TABLE

报错:

[Err] 42000 - [SQL Server]Cannot create an instance of OLE DB provider "MSDASC" for linked server "(null)".

百度得知:

需要在Sql Server Configuration Manager中将SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份改为LocalSystem

但SSCM仅可在WIN系统下使用,Linux系统如何修改上述SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份,一直无解。

尝试使用SSCM关联SQL Server for Linux,无解;
尝试在Linux上使用mssql-conf,未发现有修改上述服务的参数,无解;

自己研究了几天一直没能找到方式解决。恳请指点。

跨库这种最好在SQL SERVER里面创建linkedserver,这样可以使用跨库查询语法,我以前是这么干的,这种方式不仅可以跨库,还可以跨不同的数据库比如link mysql或者oracle,

如果你在linux sqlserver里面已经创建了 linked server,之后就可以执行跨库查询语句

EXEC master.dbo.sp_addlinkedserver
     @server = N'serverB', -- destination server Name 
     @srvproduct = N'',
     @provider = N'SQLNCLI',
     @datasrc = N'xx.xx.xx.xx', -- IP address of the destination server 
     @catalog = N'master'; -- db Name 
GO
EXEC master.dbo.sp_addlinkedsrvlogin
     @rmtsrvname = N'serverB',-- destination server Name 
     @useself = N'False',
     @locallogin = NULL,
     @rmtuser = N'sa', -- remote login name 
     @rmtpassword = '#######'; -- remote login password 
GO