Azure sql database 正在授予SQL Azure上的执行权限

Azure sql database 正在授予SQL Azure上的执行权限,azure-sql-database,Azure Sql Database,我最近将一个数据库迁移到SQLAzure。在SQL Azure上尝试在此数据库上执行存储过程时,我收到以下错误: The EXECUTE permission was denied on the object 'Log_Save', database 'MyDatabase', schema 'dbo'. 我的问题是,如何在SQLAzure上向存储过程授予执行权限(以及对表的读/写访问权限) 谢谢大家! 诀窍在于,您必须创建一个自定义的“执行者”角色,然后向其授予执行权限 在主数据库中,如果尚

我最近将一个数据库迁移到SQLAzure。在SQL Azure上尝试在此数据库上执行存储过程时,我收到以下错误:

The EXECUTE permission was denied on the object 'Log_Save', database 'MyDatabase', schema 'dbo'.
我的问题是,如何在SQLAzure上向存储过程授予执行权限(以及对表的读/写访问权限)


谢谢大家!

诀窍在于,您必须创建一个自定义的“执行者”角色,然后向其授予执行权限

在主数据库中,如果尚未创建用户,请首先创建用户:

CREATE USER MyUser FOR LOGIN MyLogin WITH DEFAULT_SCHEMA=[dbo]
GO
然后,在新数据库中:

CREATE ROLE [db_executor] AUTHORIZATION [dbo]
GO

GRANT EXECUTE TO [db_executor]
GO

sp_addrolemember @rolename = 'db_executor', @membername = 'MyUser'
sp_addrolemember @rolename = 'db_datareader', @membername = 'MyUser'
sp_addrolemember @rolename = 'db_datawriter', @membername = 'MyUser'

您可以始终使用该工具来管理Azure SQL用户并授予他们正确的权限。

与Joe Abrams的回答相关,您可以向单个用户授予执行权限:

GRANT EXECUTE TO testuser
GO

谢谢,这是正确的钱!(也应该是IMHO接受的答案…)请详细说明为什么这里需要“技巧”。当时需要吗?这是否假设将有许多用户需要分配到此角色?