无法在AWS RDS的SQL Server上执行系统过程

问题描述 投票:0回答:1

我们目前有一个运行SQL Server的Amazon RDS实例,我们遇到了一个问题,希望大家能提供帮助。

我们正在尝试执行查询:

Exec sp_OACreate 'MSXML2.ServerXMLHTTP', @Object OUT;

但是返回了:

Msg 229, Level 14, State 5, Procedure sp_OACreate, Line 1 [Batch Start Line 0]
The EXECUTE permission was denied on the object 'sp_OACreate', database 'mssqlsystemresource', schema 'sys'.

经过一些研究,显然问题是执行SQL Server的SQL Server用户需要对“主”数据库上的某些资源具有权限,据我们所知,即使是AWS RDS上的“ sa”用户也没有此权限。 。

除了此过程之外,我们还需要能够执行其他系统过程。

你们知道是否可以授予用户在AWS RDS上执行此权限的权限?如果是这样,怎么办?

提前感谢!

编辑#1:已经尝试执行:

USE master;
GRANT EXEC ON sp_OACreate TO myuser;
GRANT EXEC ON sp_OAMethod TO myuser;
GRANT EXEC ON sp_OAGetProperty TO myuser;
GRANT EXEC ON sp_OADestroy TO myuser;
GRANT EXEC ON sp_OAGetErrorInfo TO myuser;

哪个返回:

Msg 15151, Level 16, State 1, Line 4
Cannot find the user 'myuser', because it does not exist or you do not have permission.

PS:“ myuser”用户存在。这些命令是由“ sa”用户执行的。

sql-server amazon-web-services amazon-rds
1个回答
0
投票

根据AWS开发人员论坛:https://forums.aws.amazon.com/message.jspa?messageID=876085

Sorry, OLE Automation isn’t supported in RDS. If you absolutely must use those stored procedures then you’ll have to run a self-managed SQL Server on EC2. 
© www.soinside.com 2019 - 2024. All rights reserved.