千家信息网

Sql server数据库如何远程连接

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Sql server数据库如何远程连接,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在同一网络环境下,或者在可以访问的I
千家信息网最后更新 2026年11月01日Sql server数据库如何远程连接

Sql server数据库如何远程连接,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在同一网络环境下,或者在可以访问的IP地址下,我们利用SQL数据库实现远程连接访问可以使用如下方法:

通过调用master.sys.sp_addlinkedserver创建访问连接

EXEC master.sys.sp_addlinkedserver @server = NULL, -- sysname    @srvproduct = N'', -- nvarchar(128)    @provider = N'', -- nvarchar(128)    @datasrc = N'', -- nvarchar(4000)    @location = N'', -- nvarchar(4000)    @provstr = N'', -- nvarchar(4000)    @catalog = NULL -- sysname

[ @server= ] 'server'
要创建的链接服务器的名称。 server 的数据类型为 sysname,无默认值。

[ @srvproduct= ] 'product_name'
要添加为链接服务器的 OLE DB 数据源的产品名称。 product_name 的数据类型为 nvarchar(128),默认值为 NULL。 如果为 SQL Server,则不必指定 provider_name、data_source、location、provider_string 和 catalog。

[ @provider= ] 'provider_name'
与此数据源对应的 OLE DB 访问接口的唯一编程标识符 (PROGID)。 对于当前计算机中安装的指定 OLE DB 访问接口,provider_name 必须唯一。 provider_name 的数据类型为 nvarchar(128),默认值为 NULL;但如果忽略 provider_name,则使用 SQLNCLI。 (使用 SQLNCLI 并且 SQL Server 将重定向到 SQL Server Native Client OLE DB 访问接口的最新版本。)OLE DB 访问接口应以指定的 PROGID 在注册表中注册。

[ @datasrc= ] 'data_source'
由 OLE DB 访问接口解释的数据源的名称。 data_source 的数据类型为 nvarchar(4000)。 data_source 作为 DBPROP_INIT_DATASOURCE 属性传递以初始化 OLE DB 访问接口。

[ @location= ] 'location'
由 OLE DB 访问接口解释的数据库的位置。 location 的数据类型为 nvarchar(4000),默认值为 NULL。 location 作为 DBPROP_INIT_LOCATION 属性传递以初始化 OLE DB 访问接口。

[ @provstr= ] 'provider_string'
OLE DB 访问接口特定的连接字符串,它可标识唯一的数据源。 provider_string 的数据类型为 nvarchar(4000),默认值为 NULL。 provstr 或传递给 IDataInitialize 或设置为 DBPROP_INIT_PROVIDERSTRING 属性,以初始化 OLE DB 访问接口。

当针对 SQL Server Native Client OLE DB 访问接口创建链接服务器时,可以使用 SERVER 关键字来指定实例,即使用 SERVER=servername\instancename 指定特定 SQL Server 实例。 servername 是运行 SQL Server 的计算机的名称,instancename 是用户要连接的特定 SQL Server 实例的名称


成功创建访问链接后就需要登陆远程服务器数据库

exec master.sys.sp_addlinkedsrvlogin @rmtsrvname = NULL, -- sysname    @useself = '', -- varchar(8)    @locallogin = NULL, -- sysname    @rmtuser = NULL, -- sysname    @rmtpassword = NULL -- sysname

[ @rmtsrvname = ] 'rmtsrvname'
应用登录映射的链接服务器的名称。 rmtsrvname 的数据类型为 sysname,无默认值。

[ @useself = ] 'TRUE' | 'FALSE' | 'NULL'
确定是否通过模拟本地登录名或显式提交登录名和密码来连接到 rmtsrvname。 数据类型为 varchar(8),默认值为 TRUE。

值为 TRUE 指定登录名使用自己的凭据连接到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。 FALSE 指定 rmtuser 和 rmtpassword 参数用于连接到指定 locallogin 的 rmtsrvname。 如果 rmtuser 和 rmtpassword 也设置为 NULL,则不使用登录名或密码来连接链接服务器。

[ @locallogin = ] 'locallogin'
本地服务器上的登录。 locallogin 的数据类型为 sysname,默认值为 NULL。 NULL 指定此项应用于连接到 rmtsrvname 的所有本地登录。 如果不为 NULL,则 locallogin 可以是 SQL Server 登录或 Windows 登录。 对于 Windows 登录来说,必须以直接的方式或通过已被授权访问的 Windows 组成员身份授予其访问 SQL Server 的权限。

[ @rmtuser = ] 'rmtuser'
当 @useself 为 FALSE 时,用于连接到 rmtsrvname 的远程登录名。 当远程服务器是不使用 Windows 身份验证的 SQL Server 实例时,rmtuser是一个 SQL Server 登录名。 rmtuser 的数据类型为 sysname,默认值为 NULL。

[ @rmtpassword = ] 'rmtpassword'
与 rmtuser 关联的密码。 rmtpassword 的数据类型为 sysname,默认值为 NULL。


接下来就要为远程服务器和链接服务器设置服务器选项

    EXEC master.sys.sp_serveroption @server = NULL, -- sysname        @optname = '', -- varchar(35)        @optvalue = N'' -- nvarchar(128)

[ @server = ] 'server'
要为其设置选项的服务器的名称。 server 的数据类型为 sysname,无默认值。

[ @optname = ] 'option_name'
为指定的服务器设置的选项。 option_name 的数据类型为 varchar(35),无默认值。 option_name 可以是下列任意值。

[ @optvalue =] 'option_value'
指定应启用(TRUE 或 on)还是禁用(FALSE 或 off)option_name。 option_value 的数据类型为 varchar(10),无默认值。

option_value 可以是用于 connect timeout 和 query timeout 选项的非负整数。 对于 collation name 选项,option_value 可以是排序规则名称或 NULL。

通过上述步骤就可以实现远程数据库的访问了

具体例子如下:

EXEC master.sys.sp_addlinkedserver@server = 'HQDB2',@srvproduct = '',@provider = 'SQLOLEDB',@datasrc = '10.82.21.69'EXEC master.sys.sp_addlinkedsrvlogin     @rmtsrvname = 'HQDB2',    @useself = N'false',    @locallogin = NULL,    @rmtuser = 'btscn',    @rmtpassword = 'btscn' EXEC master.sys.sp_serveroption     @server = 'HQDB2',     @optname = 'RPC out',     @optvalue = N'true'EXECUTE [HQDB2].[BTSHQ9903].[dbo].[stp_Generate_RentalReport]    @GenerateDate

可以执行select * from sys.servers查询当前的远程访问链接是否存在

当远程连接使用完后需要释放

EXEC master.sys.sp_dropserver @server = NULL, -- sysname    @droplogins = '' -- char(10)

[ @server = ] 'server'
要删除的服务器。 server 的数据类型为 sysname,无默认值。 server 必须存在。

[ @droplogins = ] 'droplogins' | NULL
指示如果指定了 droplogins,那么对于 server,还必须删除相关的远程服务器和链接服务器登录名。 @droplogins 的数据类型为 char(10),默认值为 NULL。

实例:

EXEC master.sys.sp_dropserver     @server = 'HQDB2',     @droplogins = 'droplogins'

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

数据 服务器 类型 服务 登录 接口 链接 名称 数据库 实例 数据源 密码 属性 参数 标识 计算机 身份 帮助 应用 解释 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云之行互联网科技 互联网科技工作委员会毛军 互联网和科技技术 科技类互联网 没上市的科技互联网公司 互联网科技公司电话 中国互联网科技发展 北京互联网络科技有限公司 四川狮子座互联网科技 美国互联网前沿科技 滨湖区互联网智能科技产品供应 深圳市运趣互联网科技有限公司 中盈科技互联网信息有限公司 互联网公司科技股 南平创想时代互联网科技有限公司 崇明区互联网教育科技诚信经营 江苏互联网科技小贷 互联网企业和网络科技有限公司 六子台科技互联网展会 武汉亿视互联网科技有限公司 科技互联网政务服务 互联网高科技股票 开启互联网科技时代小说 互联网之后的科技是什么 小米互联网科技园设置 中国互联网十大科技股排名 企晟互联网信息科技有限公司 产业互联网科技服务公司 上海乐五互联网科技有限公司 科技互联网经济论坛
0