我们目前有一个运行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”用户执行的。
根据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.