如何过mssql链接服务器访问远程数据

如何过mssql链接服务器访问远程数据,第1张

您好,在 MS SQL Server 中访问其他远程数据库的数据可以通过 OPENQUERY (Transact-SQL) 函数来实现。首先创建一个链接服务器,然后像普通表一样维护远程的数据。 ms sql server 链接服务器的创建方法:

EXECsp_addlinkedserver

'lkTest',

'',

'MSDASQL',

NULL,

NULL,

'DRIVER={SQL Server}SERVER=192.168.0.224UID=saPWD=sa' 检查链接服务器的可用性:

select * fromopenquery(lkTest,'select * from pubs.dbo.jobs') 如果远程的ms sql server数据库无法访问,报错:[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB provider returned message:

[Microsoft][ODBC SQL Server Driver][SQL Server]用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。]检查网络、sa密码都无误后仍无法连接,可以尝试安装ms sql server 的sp3来解决。 OPENQUERY() 函数介绍对给定的链接服务器执行指定的传递查询。该服务器是 OLE DB 数据源。OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名。OPENQUERY 也可以作为 INSERT、UPDATE 或 DELETE 语句的目标表进行引用。但这要取决于 OLE DB 访问接口的功能。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。语法

OPENQUERY ( linked_server ,'query' ) 参数

linked_server

表示链接服务器名称的标识符。'query'

在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。 备注

OPENQUERY 不接受其参数的变量。在 SQL Server 2000 和更高版本中,OPENQUERY 不能用于对链接服务器执行扩展存储过程。但是,通过使用四部分名称,可以在链接服务器上执行扩展存储过程。例如:

EXEC SeattleSales.master.dbo.xp_msver 权限

任何用户都可以执行 OPENQUERY。用于连接到远程服务器的权限是从为链接服务器定义的设置中获取的。 示例

A. 执行 SELECT 传递查询

以下示例将使用“用于 Oracle 的 Microsoft 访问接口”针对 Oracle 数据库创建一个名为 OracleSvr 的链接服务器。然后,该示例针对此链接服务器使用 SELECT 传递查询。 注意:

本示例假定已经创建了一个名为 ORCLDB 的 Oracle 数据库别名。EXEC sp_addlinkedserver 'OracleSvr',

'Oracle 7.3',

'MSDAORA',

'ORCLDB'

GO

SELECT *

FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')

GO B. 执行 UPDATE 传递查询

UPDATE OPENQUERY (linked_server, 'SELECT title, content FROM msgs WHERE id=1')

SET title = 'newTitle', content = 'newContent'C. 执行 INSERT 传递查询

INSERT OPENQUERY (linked_server, 'SELECT title, content FROM msgs')

VALUES ('title', 'content')D. 执行 DELETE 传递查询

以下示例使用 DELETE 传递查询删除。

DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''')参考

sp_linkedservers 检查当前链接服务器,直接执行即可看到结果

sp_addlinkedserver 配置链接服务器

1、打开sql2008,使用windows身份登录;

2、登录后,右键选择“属性”。左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式;

3、选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”;

4、展开“安全性”,“登录名”“sa”,右键选择“属性”;

5、左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码;

6、右击数据库选择“方面”;

7、在右侧的方面下拉框中选择“服务器配置”;将“RemoteAccessEnabled”属性设为“True”,点“确定”;

8、至此SSMS已设置完毕,先退出,再用sa登录,成功即表示sa帐户已经启用;

9、打开sql server配置管理器;

10、下面开始配置SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server Browser”正在运行;

11、在左则选择sql server网络配置节点下的sqlexpress的协议,在右侧的TCP/IP默认是“否”,右键启用或者双击打开设置面板将其修改为“是”;

12、选择“IP 地址”选项卡,设置TCP的端口为“1433”;

13、将"客户端协议"的"TCP/IP"也修改为“Enabled”配置完成,重新启动SQL Server 2008。此时应该可以使用了,但是还是要确认一下防火墙。

打开防火墙设置。将SQLServr.exe(C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe)添加到允许的列表中。

你好,mysql -u用户名 -h主机名 -p

前提是服务器的mysql上有该用户,以及对应的IP

可登入mysql服务器上执行

grant all on test.* to 用户名@'客户机IP' identified by '密码' ;

flush privileges; #刷新权限表,让所做修改生效

上面指令的意思是 将test这个数据库的全部内容以及全部的操作权限赋权给从特定IP上登入到本服务器的用户。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/750074.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-15
下一篇2023-08-15

发表评论

登录后才能评论

评论列表(0条)

    保存