首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何授予数据库角色对架构的execute权限?我做错了什么?

如何授予数据库角色对架构的execute权限?我做错了什么?
EN

Stack Overflow用户
提问于 2010-12-13 20:05:22
回答 1查看 7.2K关注 0票数 6

我使用的是SQL Server 2008 Express版。

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

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

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

我已经尝试通过management studio和在查询窗口中输入命令来授予执行权限。

代码语言:javascript
复制
GRANT EXEC ON SCHEMA::schema_name TO role_name

但是当我使用SQL management studio (作为我创建的登录名)连接到数据库时,首先我看不到存储过程,但更重要的是,当我试图运行它们时,我得到了一个权限被拒绝的错误。

所讨论的存储过程除了从同一schma中的表中选择数据之外,什么也不做。

我已经尝试过使用和不使用以下行来创建存储过程:

代码语言:javascript
复制
WITH EXECUTE AS OWNER

这没有任何区别。

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

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

如有任何建议或意见,我们将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-05-17 23:15:43

我在你的案例中看到了几个问题。

首先,您需要授予View Definition权限,以便能够在Management studio中查看对象。

如果您希望角色拥有所有权限,我建议您这样做。

代码语言:javascript
复制
GRANT EXECUTE, SELECT, INSERT, UPDATE, DELETE, VIEW DEFINITION
    ON Schema::SchemaName TO [RoleName/LoginName]

还要确保用户定义模式的所有者是"dbo“。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4428619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档