【问题标题】:Stored procedure properties page missing in SSMS when connected to an Azure SQL database连接到 Azure SQL 数据库时,SSMS 中缺少存储过程属性页面
【发布时间】:2025-12-23 04:45:06
【问题描述】:

我正在连接到本地 SQL Server 和池中的 Azure SQL 数据库。两者都来自同一个 SSMS 实例。

当我右键单击本地服务器上任何数据库中的存储过程时,我会看到属性选项并且可以添加/修改权限。但是 Azure SQL 连接没有显示存储过程的属性选项,所以我必须在 T-SQL 中 GRANT。

属性中有很多信息,以及我希望 SSMS 访问以轻松查看的权限。 Azure SQL 中是否有启用/禁用属性的设置?

感谢您的帮助!

【问题讨论】:

    标签: stored-procedures azure-sql-database ssms


    【解决方案1】:

    Azure SQL 数据库不支持 SSMS 中的所有 properties 设置。

    例如,SSMS 支持 Azure SQL database properties 设置:

    但是你发现它不支持Stored Procedure properties设置。

    Azure SQL 中是否有启用/禁用属性的设置?

    不,Portal 或 SSMS 中没有此类设置。无论您使用哪个帐户(admin 或 db_owner)登录 Azure SQL 数据库。

    唯一的方法是在 T_SQL 中授予它。

    希望这会有所帮助。

    【讨论】:

    • 感谢您让我知道我没有发疯!这只是“它就是这样”的情况。希望 ms 能尽快解决这个问题。
    • @LouNobilé 不客气。如果我的回答对您有帮助,请接受(标记)它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。
    • 完成。不好意思,论坛新人。谢谢你的答案!
    【解决方案2】:

    这不是 Azure SQL 数据库问题,而是数据库权限问题。

    您是否以相同的方式连接 - 即都使用 SQL 登录?

    您需要确保在两个数据库上为用户授予相同的权限,一种方法可能是从本地数据库中编写权限脚本并在 Azure 数据库上运行查询。您仍应确保在尽可能低的级别执行此操作,以免授予过多的权限。我建议在架构级别

    你需要的最低权限是:

    GRANT VIEW DEFINITION ON SCHEMA::<my schema name> TO <my user>
    

    【讨论】:

    • 我以服务器管理员身份连接(在 azure 门户中),它以 dbo 形式输入任何数据库。为了确保在阅读您的答案后,我还使用了一个连接,它是 db_owner 中的一个 db 用户。在这两种情况下,当我右键单击存储过程时,上下文菜单中都没有“属性”选项。此外,当我右键单击表格时,还有一个“属性”选项。我拥有完全权限,可以在该数据库中查看它们并对其进行任何操作。 (具有服务器管理员的所有数据库)。
    • 啊,现在知道了。也就是说,根据设计,这些页面当前未针对 Azure SQL 数据库公开,您将需要使用 T-SQL 查询来收集属性。我认为表是唯一从 Azure SQL 数据库公开属性的对象 - 甚至这是本地数据库的子集。