【发布时间】:2021-12-02 03:43:33
【问题描述】:
在已设置的 Azure 托管 SQL 实例上,我正在尝试设置一些链接服务器连接。
当我在登录到此 MI SQL 实例时通过 Management Studio 访问这些相同的数据库时,我可以毫无问题地访问我想要连接的数据库。
但是,当我创建链接服务器连接时,它没有提供我可以通过 Management Studio 访问的其他 SQL 实例上的数据库。
通过MS访问数据库的端口为1433。
我已经能够在 DEV SQL 实例上成功创建这些链接服务器连接。但是,DEV SQL 实例不是托管实例。它是安装了 SQL Server 的 Azure VM 服务器。
我的问题是,我是否需要对 SQL MI 做任何特别的事情来允许我想要设置的这些数据库?
我尝试使用默认端口 (1433),但没有成功。这是在使用 management studio 时用于连接到 DB 的端口。
它确实创建了链接服务器连接,但不提供我试图联系的那个数据库上的数据库和表。
由于它位于 Azure 中,对于 MI,我是否需要在 Azure 门户或托管实例的服务器上执行任何特殊操作?
我尝试连接的数据库是 SQL Server 2016 (SP2-CU17) (KB5001092) - 13.0.5888.11 (X64) Mar 19 2021 19:41:38 版权所有 (c) Microsoft Corporation Enterprise Edition ( 64 位)在 Windows Server 2012 R2 Standard 6.3(内部版本 9600:)(管理程序)上
任何帮助将不胜感激。
由于我尝试设置的服务器是托管 SQL 实例,因此有什么特别需要做的吗?
我收到一条错误消息:“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。”我可以通过这个托管 SQL 实例上的管理工作室访问同一个实例,没问题。但我无法创建链接服务器连接。
这是我用来尝试创建链接服务器连接的方法:
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'LinkedServer_Name', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'IPAddress,1433', @catalog=N'DB_Name'
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LinkedServer_Name',@useself=N'False',@locallogin=NULL,@rmtuser=N'user_name',@rmtpassword='password'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'collation compatible', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'rpc', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LinkedServer_Name', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
【问题讨论】:
-
SQL 是一种语言,它没有实例。
-
糟了! SQL 具有已安装的实例。是的,结构化查询语言顾名思义就是一种“语言”。但是,SQL Server 也是一个已安装的平台。但是,如果您曾经使用过 SQL,您就会知道这一点。
-
是的,我知道 SQL 和 MS SQL Server 之间的区别。但其他一些则没有。最好说清楚。
-
请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
标签: azure azure-sql-managed-instance