首页 新闻 会员 周边 捐助

sqlserver 权限问题

0
[待解决问题]

接手的老项目,其中有一条sql是 'select * from a库.dbo.b库的表' 这个条sql在原库上是可以查询的。

现在有一台新的服务器要迁移数据,我同样创建了两个库 但我执行 'select * from a库.dbo.b库的表'这个sql时,提示找不到。

这说明原库上做了某些设置,不知道如何解决了。
同时a库能查询b库的所有表 ,b库不能查询a库的表。 求助
(a库是没有b库的表的)

想知道怎么设置一下,如何设置。

碰到的问题如下
a库有aa表 b库有bb表
select * from a.dbo.bb 结果:可以查到

select * from b.dbo.bb 结果:当然可以查到

select * from b.dbo.aa 结果:不行 [42S02] Microsoft[SQL Server]对象名 'b.dbo.aa' 无效。 (208)

所以a库 指定是设置了什么配置

旺来啦!的主页 旺来啦! | 菜鸟二级 | 园豆:202
提问于:2024-07-23 17:47
< >
分享
所有回答(3)
0

这个功能叫大概率是叫 链接服务器
baidu给你找了一张图片

czd890 | 园豆:14488 (专家六级) | 2024-07-24 10:18

找到了 解决方法了 之前那个前辈用了sqlserver的同义词,博主这个链接服务器是两台sqlserver服务的情况吧 当时查了下 感谢博主的回复

支持(0) 反对(0) 旺来啦! | 园豆:202 (菜鸟二级) | 2024-07-24 10:23
0

两个库啊,自然要连接两个库服务先。。。然后才能进行查询。。。

lzhdim | 园豆:650 (小虾三级) | 2024-07-24 14:37
0

根据您提供的信息,看起来在原始库上执行 "select * from a库.dbo.b库的表" 是有效的,但在新服务器上执行该语句时出现了错误。此外,您还提到在a库中可以查询b库的所有表,但在b库中无法查询a库的表。
对于这种情况,可能原始库中设置了跨数据库查询的权限,而在新服务器上还没有进行相应的设置。要解决这个问题,您可以尝试以下步骤来设置权限和配置:

  1. 检查新服务器上的跨数据库查询的权限:请确保您在新服务器上使用的数据库用户有足够的权限来执行跨数据库查询。您可以与数据库管理员或技术支持团队联系以获取更多帮助。
  2. 具体设置权限:在新服务器上,您可以为与原始库中的a库和b库相对应的数据库用户分配适当的权限。使用适当的GRANT语句来授予用户对其他数据库的访问权限。例如,您可以执行类似以下的语句:
GRANT SELECT ON a.dbo.bb TO [user];
GRANT SELECT ON b.dbo.aa TO [user];

这些语句将授予用户在a库中查询b库的权限,以及在b库中查询a库的权限。
3. 确认连接字符串和数据库引用:如果您正在使用应用程序或脚本连接到数据库,请确保连接字符串中指定了正确的数据库名称,并检查代码中引用数据库的方式是否正确。在查询中使用类似 "a.dbo.bb" 或 "b.dbo.aa" 的引用只适用于正确设置和权限配置的情况。
请注意,在进行任何更改之前,建议您在测试环境中进行,并确保已备份数据以防止意外情况。如果您在设置过程中遇到任何问题,最好与您的数据库管理员或技术支持团队联系,他们将能够提供特定于您的环境和要求的准确帮助。

Technologyforgood | 园豆:7541 (大侠五级) | 2024-07-24 21:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册