我在执行函数时遇到了问题。
以下是我所做的:
使用SQL Server Management Studio创建一个函数。它被成功地创建了。 然后我尝试执行新创建的函数,下面是我得到的结果:
日志含义在日拒绝执行权限 对象'xxxxxxx',数据库 'zzzzzzz' schema 'dbo'
我在执行函数时遇到了问题。
以下是我所做的:
使用SQL Server Management Studio创建一个函数。它被成功地创建了。 然后我尝试执行新创建的函数,下面是我得到的结果:
日志含义在日拒绝执行权限 对象'xxxxxxx',数据库 'zzzzzzz' schema 'dbo'
当前回答
在SQL Server Management Studio中,进入“security->schema->dbo”:
双击dbo,选择权限页面,然后点击“查看数据库权限”蓝色链接:
选择您想要更改权限的用户,并在“explicit”选项卡下查找“Execute”权限:
通过选中相应的框来选择相应的权限。
其他回答
最好的解决方案,我发现是创建一个新的数据库角色,即。
CREATE ROLE db_executor;
然后授予角色执行权限。
GRANT EXECUTE TO db_executor;
现在,当您转到用户的属性并转到user Mapping并选择您添加了新角色的数据库时,现在新角色将在database role membership for:部分中可见
欲了解更多细节,请阅读全文
如果您让这个用户对于特定的数据库是特殊的,那么在属性的“用户映射”中可能不会将其设置为db_owner
听起来,您需要为所讨论的存储过程向用户(或用户所属的组)授予执行权限。
例如,你可以这样授予访问权限:
USE zzzzzzz;
GRANT EXEC ON dbo.xxxxxxx TO PUBLIC
我认为您必须选择您想要授予访问权限的对象,然后右键单击,并选择属性。在将要显示的模式窗口上选择权限,然后单击Search,在新显示的窗口上,选择browse,选择您想授予访问权限的用户,然后单击ok。它将为您显示权限和授予状态的列表,然后您可以选择授予或拒绝
以下是如何为一个非公开用户授予权限,
直接查询:
使用MyDatabase 授权执行[dbo]。[My-procedures-name] to [IIS APPPOOL\my-iis-pool] 去