use*_*192 8 azure-sql-database
我最近将数据库迁移到SQL Azure.当我尝试在SQL Azure上的此数据库上执行存储过程时,我收到以下错误:
The EXECUTE permission was denied on the object 'Log_Save', database 'MyDatabase', schema 'dbo'.
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何在SQL Azure上为存储过程(以及对表的读/写访问)授予EXECUTE权限?
谢谢!
Joe*_*ams 18
诀窍是你必须创建一个自定义的"执行者"角色,然后授予它执行权限.
在主数据库中,如果您还没有用户,请首先创建一个用户:
CREATE USER MyUser FOR LOGIN MyLogin WITH DEFAULT_SCHEMA=[dbo]
GO
Run Code Online (Sandbox Code Playgroud)
然后,在您的新数据库中:
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'
Run Code Online (Sandbox Code Playgroud)
与Joe Abrams的答案有关,您可以将执行权限授予单个用户:
GRANT EXECUTE TO testuser
GO
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12005 次 |
| 最近记录: |