sql-server - 对象的 SELECT 权限被拒绝

标签 sql-server security roles

如果在 SqlServer 中创建了一个自定义角色,我将其添加到 db__denydatareader 和 db__denydatawriter 角色。我认为通过数据库并授予所有 neccersary 存储过程的 exec 权限。

一切正常,调用这些 sps 会正常运行。一个异常(exception)是使用 sp_executesql 执行动态 sql 的存储过程。这不能说

The SELECT permission was denied on the object 'listing_counter', database 'Cannla', schema 'dbo'.

有什么方法可以授予角色运行此查询的权限而不授予它对基础表的选择访问权限?

我想我想要做的是在 sys.sp_executesql 上授予 exec 但仅在特定情况下。

最佳答案

您可以为使用 execute_sql 的存储过程创建一个新用户,授予他所需的权限,然后将 WITH EXECUTE AS 'MyUser' 添加到过程定义中。
See MSDN.

关于sql-server - 对象的 SELECT 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343078/

相关文章:

sql - 如何在SQL函数中计算不同的趋势线类型

sql-server - Azure 数据工厂中如何计算更改计数 - 更改数据捕获

php - 使用PHP运行使用存储在SQL Server中的proc和事务的查询会导致神秘错误

javascript - 使用 Javascript 检查测验答案的最安全方法

wcf - 为什么在使用 .Net WCF 等 Web 服务时禁止 DTD 更安全?

asp.net-mvc - ASP.Net MVC : Check if URL is Authorized

SQL Server 更新后触发器

database - 为什么将密码哈希截断为 14 个字符?

jquery - 根据用户角色隐藏带有 Handlebars 的元素

c# - 如何在我的 asp.net core 3.1 应用程序中播种用户和角色?