You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Linked Server用户授予查看存储过程列表的权限

问题原因

SSMS 原生设计中,链接服务器的对象资源管理器节点默认仅展示远程实例的表、视图两类对象,不会内置存储过程的展示节点,你遇到的仅显示表和视图的情况属于正常默认行为,并非配置错误。

可行解决方案

方案1:T-SQL查询获取权限内存储过程列表

在源服务器执行以下查询,即可拉取到目标链接服务器上,你所使用的远程账号拥有执行权限的所有存储过程,执行前替换[你的链接服务器名称]、[目标数据库名]为实际值即可:

SELECT * 
FROM OPENQUERY([你的链接服务器名称], '
SELECT s.name AS 架构名, p.name AS 存储过程名
FROM [目标数据库名].sys.procedures p
JOIN [目标数据库名].sys.schemas s ON p.schema_id = s.schema_id
WHERE HAS_PERMS_BY_NAME(QUOTENAME(s.name) + ''.'' + QUOTENAME(p.name), ''OBJECT'', ''EXECUTE'') = 1
')

你可以将该查询保存为SSMS自定义脚本,或创建成本地视图,方便后续随时查询。

方案2:通过已注册服务器直接访问目标实例(更适合高频使用场景)

直接将目标SQL Server添加到SSMS的已注册服务器列表,使用配置链接服务器时的远程账号密码进行身份验证,即可和访问本地实例一样,在对象资源管理器的「可编程性-存储过程」节点下,看到该账号有权限的所有存储过程,不需要依赖链接服务器的UI节点。

注意事项
  • 不需要给远程账号额外授予VIEW DEFINITION等超出执行需求的权限,上述方案1的查询已经通过系统函数HAS_PERMS_BY_NAME精准过滤出仅拥有执行权限的存储过程,符合最小权限原则。
  • 目前SSMS原生不支持在链接服务器的UI树中新增存储过程展示节点,无相关配置项可开启该功能。

内容的提问来源于stack exchange,提问作者user2871239

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:27:04