gpt4 book ai didi

sql - 如何授予数据库角色对架构的执行权限?我究竟做错了什么?

转载 作者:行者123 更新时间:2023-12-04 15:27:15 25 4
gpt4 key购买 nike

我使用的是 SQL Server 2008 Express 版。

我创建了登录、用户、角色和架构。
我已将用户映射到登录名,并将角色分配给用户。

该架构包含许多表和存储过程。

我希望角色对整个架构具有执行权限。

我曾尝试通过管理工作室并通过在查询窗口中输入命令来授予执行权限。

GRANT EXEC ON SCHEMA::schema_name TO role_name

但是,当我使用 SQL 管理工作室(作为我创建的登录名)连接到数据库时,我首先看不到存储过程,但更重要的是,在尝试运行它们时出现权限被拒绝错误。

有问题的存储过程除了从同一 schma 中的表中选择数据外,什么都不做。

我尝试使用和不使用该行创建存储过程:
WITH EXECUTE AS OWNER

这没有任何区别。

我怀疑我在创建模式时犯了一个错误,或者某处存在所有权问题,但我真的很难让某些东西正常工作。

我成功设法执行存储过程的唯一方法是向角色授予控制权限以及执行,但我认为这不是正确、安全的继续方式。

任何建议/意见将不胜感激。

谢谢。

最佳答案

在您的案例中,我可以看到几个问题。

首先,您需要授予 View 定义才能看到管理工作室中的对象。

如果您希望角色拥有所有权限,我会推荐这个,

GRANT EXECUTE, SELECT, INSERT, UPDATE, DELETE, VIEW DEFINITION
ON Schema::SchemaName TO [RoleName/LoginName]

还要确保您的用户定义架构的所有者是“dbo”。

关于sql - 如何授予数据库角色对架构的执行权限?我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com