小编gt6*_*89b的帖子

如何允许执行存储过程但不允许写入?

我想在我的 SQL Server 2012 实例上设置一个“阅读”用户。我想让他有权执行任何存储过程、函数或直接 SQL 语句,这些语句从所有表和视图中检索数据,但不能更新或插入(即读取任何内容,不写入任何内容)。

我是否可以在不按名称专门授予每个函数或存储过程的权限的情况下进行设置,而是授予他对任何函数或存储过程的执行权,而只是剥夺修改表的权利?

如果我改为运行 SQL Server 2008,会有什么变化吗?

澄清和补充:

  1. 如果存储过程更改数据,用户应该收到错误消息(拒绝修改或完全拒绝访问存储过程)。
  2. 如果潜在的解决方案涉及拒绝权限,我可以不授予某些权限而不是拒绝吗?
  3. 是否可以在一个语句中对数据库中的所有表、视图等(现在和将来存在的)应用拒绝?

sql-server-2008 sql-server permissions sql-server-2012

11
推荐指数
1
解决办法
1万
查看次数