我在执行函数时遇到了问题。

以下是我所做的:

使用SQL Server Management Studio创建一个函数。它被成功地创建了。 然后我尝试执行新创建的函数,下面是我得到的结果:

日志含义在日拒绝执行权限 对象'xxxxxxx',数据库 'zzzzzzz' schema 'dbo'


当前回答

如果您让这个用户对于特定的数据库是特殊的,那么在属性的“用户映射”中可能不会将其设置为db_owner

其他回答

如果您让这个用户对于特定的数据库是特殊的,那么在属性的“用户映射”中可能不会将其设置为db_owner

我也遇到过同样的问题,我把db_owner权限也给了数据库用户。

如果您试图将权限授予用户或角色,则此操作将有效。

使用Microsoft SQL Server Management Studio:

转到:数据库 右键单击dbo.my_database 选择:属性 在左侧面板上,单击:Permissions 在“名称面板”中选择“用户”或“角色” 找到“在权限中执行”并选中标记:“授予”、“与授予一起”或“拒绝”

最好的解决方案,我发现是创建一个新的数据库角色,即。

CREATE ROLE db_executor;

然后授予角色执行权限。

GRANT EXECUTE TO db_executor;

现在,当您转到用户的属性并转到user Mapping并选择您添加了新角色的数据库时,现在新角色将在database role membership for:部分中可见

欲了解更多细节,请阅读全文

在SQL Server Management Studio中,进入“security->schema->dbo”:

双击dbo,选择权限页面,然后点击“查看数据库权限”蓝色链接:

选择您想要更改权限的用户,并在“explicit”选项卡下查找“Execute”权限:

通过选中相应的框来选择相应的权限。