Dre*_*rew 6 sql-server linked-server
所以有一个链接服务器。但是,在展开目录下拉列表后,我目前无法从 SSMS 中查看与该链接服务器关联的所有数据库。我的理解是这可能是权限问题。但是,我不确定我需要授予哪些权限才能与来自链接服务器的 tat db 进行交互。
有任何想法吗?
从链接服务器执行以下命令后:
select * from [<server>].[<database>].[dbo].table1
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
链接服务器 "" 的 OLE DB 访问接口 "SQLNCLI10" 不包含表 """."dbo"."table1""。该表不存在或当前用户对该表没有权限。
TLDR;
问题:我不确定如何显示与我的链接服务器关联的数据库之一。!
小智 7
这是因为用于链接服务器的帐户未添加到尝试访问的数据库的安全性中。
在 Linked Servers 容器中显示的数据库上,您还会发现帐户(回到原始数据库服务器上)添加到具有读取访问权限的安全部分。将该帐户添加到原始服务器上新创建的数据库(在本例中为目录),然后刷新目标数据库服务器上的链接服务器。您的目录现在将显示。
但是,我不确定需要授予哪些权限才能从链接服务器与 tat db 进行交互。
假设您确定目标表存在,然后查看链接服务器。它要么为每个人使用一组权限,要么分配单独的登录名。在这两种情况下,无论您登录到具有链接服务器的登录名,都会尝试通过模拟或使用硬编码在链接服务器登录名列表中的用户名来访问远程服务器。
该用户(链接服务器登录列表中的用户)需要存在于远程服务器上,并且在远程服务器上拥有对您的对象的权限。
PS 为了获得更好的性能,请尝试使用 EXECUTE AT 或 OPENQUERY 而不是纯粹的四部分命名,特别是当您进入 JOINing 链接服务器表时。
归档时间: |
|
查看次数: |
29272 次 |
最近记录: |