文章摘要
这篇文章介绍了如何在本地SQL Server数据库中直接执行跨库查询的操作。主要内容包括:
1. 启用Ad Hoc Distributed Queries功能,通过执行`exec sp_configure 'showadvanced options',1`和`reconfigure`命令来完成。
2. 使用`openrowset`语句连接到另一个SQL Server数据库:
```sql
openrowset('SQLOLEDB', '另一个SQLSERVER数据库IP', '另一个数据库用户名', '密码', 'select * from 数据库名.表所有者.表名')
```
3. 提供了示例代码:
```sql
select * from openrowset('SQLOLEDB', '192.168.4.238', 'jb51', 'ecology', 'select * from ecology.dbo.hrmresource')
```
4. 提醒用户注意权限控制,不能使用默认用户(SA),只能指定特定IP地址的数据库,以确保低权限运行,避免潜在安全问题。
SQL Server如何通过SQL语句直接操作另一个SQL SERVER的数据
1、 现在执行SQL语句的数据库服务器开启Ad Hoc Distributed Queries
exec sp_configure ‘showadvanced options’,1
reconfigure
exec sp_configure ‘Ad HocDistributed Queries’,1
reconfigure
reconfigure
exec sp_configure ‘Ad HocDistributed Queries’,1
reconfigure
2、通过openrowset(‘SQLOLEDB’,’另一个SQLSERVER数据库IP’; ‘另一个数据库用户名’;’密码’,’select * from 数据库名.表所有者.表名’)
openrowset(‘SQLOLEDB’,’另一个SQLSERVER数据库IP’; ‘另一个数据库用户名’;’密码’,’select * from 数据库名.表所有者.表名’)
3、 实例
select * from openrowset(‘SQLOLEDB’,’192.168.4.238′; ‘jb51′;’ecology’,’select * from ecology.dbo.hrmresource’)
以上语句可在当前数据库查询出192.168.4.238数据库上的hrmresource’数据,大家在实际使用过程中一定要控制好权限,只能指定的ip才让访问本地的sql数据库,低权限运行数据库,更不能使用sa,这里只是测试。
© 版权声明
文章版权归作者所有,未经允许请勿转载。