阿里云RDS The EXECUTE permission was denied on the object schema ‘dbo’.

技术文摘3年前 (2022)发布 8KMM
8.3K 0 0

SQL Server2017本地迁移到阿里RDS上云后, 在本地运行正常的程序报:

SqlException: The EXECUTE permission was denied on the object '存储过程名', database 'db2022', schema 'dbo'.

SqlException:对象“过程名”、数据库“db2022”、模式“dbo”的执行权限被拒绝。

所有的存储过程均无权限执行,

提交工单, 得到的工程师答复:

默认云上RDS是无超级权限的。云上RDS支持的存储过程如下:

https://help.aliyun.com/document_detail/88094.html?spm=a2c4g.11186623.0.0.5c366f45xK2s0a

如果使用的是Aliyun RDS  SQL Server 2019、2017、2016、2014、2012, 这类的, 都需要赋与数据库用户的权限。 

操作如下:

数据库全局授权

T-SQL命令

sp_rds_set_all_db_privileges

支持的实例

  • 高可用版
  • 基础版

描述

为一个用户授予所有或多个用户数据库的权限。
说明 授权时,当前用户对被授权数据库的权限必须大于或等于被授予的权限。

使用方法:

sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
  • 第一个参数user是被授权的用户。
  • 第二个参数是授予该用户的数据库角色db_owner
  • 第三个参数是db1,db2数据库,可以指定一个或者多个,用逗号分隔,也可以不指定该参数(不指定表示全部用户数据库)。

连接上RDS, 执行就行。

© 版权声明

相关文章

文章目录

    暂无评论

    暂无评论...
    退出移动版