Lew*_*ray 6 sql permissions schema stored-procedures sql-server-2008-express
我正在使用SQL Server 2008 Express版.
我创建了一个登录,用户,角色和架构.我已将用户映射到登录名,并将该角色分配给用户.
该模式包含许多表和存储过程.
我希望角色对整个架构具有执行权限.
我尝试通过管理工作室授予执行权限,并在查询窗口中输入命令.
GRANT EXEC ON SCHEMA::schema_name TO role_name
Run Code Online (Sandbox Code Playgroud)
但是当我使用SQL管理工作室(作为我创建的登录名)连接到数据库时,我首先看不到存储过程,但更重要的是,在尝试运行它们时,我得到了一个权限被拒绝错误.
有问题的存储过程除了从同一个schma中的表中选择数据外什么都不做.
我尝试使用和不使用行创建存储过程:
WITH EXECUTE AS OWNER
Run Code Online (Sandbox Code Playgroud)
这没有任何区别.
我怀疑在创建模式时我犯了一个错误,或者某个地方存在所有权问题,但我真的很想让某些东西发挥作用.
我成功设法执行存储过程的唯一方法是授予角色控制权限以及执行权限,但我不相信这是正确,安全的继续方式.
任何建议/意见将非常感谢.
谢谢.
在你的案例中我可以看到几个问题。
首先,您需要授予查看定义才能查看 Management studio 中的对象。
如果您希望角色拥有所有权限,我会推荐这个,
GRANT EXECUTE, SELECT, INSERT, UPDATE, DELETE, VIEW DEFINITION
ON Schema::SchemaName TO [RoleName/LoginName]
Run Code Online (Sandbox Code Playgroud)
还要确保用户定义架构的所有者是“dbo”。
| 归档时间: |
|
| 查看次数: |
7033 次 |
| 最近记录: |