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, 执行就行。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...