Sql server 无法在AWS RDS的SQL Server上执行系统过程
我们目前有一个运行SQL Server的Amazon RDS实例,我们遇到了一个问题,希望你们能提供帮助 我们正在尝试执行查询:Sql server 无法在AWS RDS的SQL Server上执行系统过程,sql-server,amazon-web-services,amazon-rds,Sql Server,Amazon Web Services,Amazon Rds,我们目前有一个运行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 obje
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用户需要对“master”数据库中的某些资源拥有权限,而据我们所知,即使是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开发者论坛: 抱歉,RDS中不支持OLE自动化。如果您必须使用这些存储过程,那么您必须在EC2上运行一个自我管理的SQL Server
根据AWS开发者论坛: 抱歉,RDS中不支持OLE自动化。如果您必须使用这些存储过程,那么您必须在EC2上运行一个自我管理的SQL Server
From:“需要sysadmin固定服务器角色的成员身份或直接对此存储过程的执行权限。
Ole自动化过程
必须启用配置才能使用与Ole自动化相关的任何系统过程。”如果登录不应具有sysadmin
权限,为其链接的用户
在object@Larnu:问题是用我已经尝试过的内容编辑的(“编辑#1”)。请检查这是否是您的意思。如果允许您在任何托管SQL Server解决方案上运行此过程,我会非常惊讶,因为它基本上允许您在宿主管理的服务器上运行任意代码。谢谢,@DavidBrowne Microsoft。显然正是这样。我在下面的AWS开发者论坛中给出了这样一个答案:“需要sysadmin固定服务器角色的成员资格或直接对此存储过程执行权限。Ole自动化过程
必须启用配置才能使用与Ole自动化相关的任何系统过程。”如果登录名不应具有sysadmin
权限,请在object@Larnu:问题是用我已经尝试过的内容编辑的(“编辑#1”)。请检查这是否是您的意思。如果允许您在任何托管SQL Server解决方案上运行此过程,我会非常惊讶,因为它基本上允许您在宿主管理的服务器上运行任意代码。谢谢,@DavidBrowne Microsoft。显然正是这样。我在下面的AWS开发者论坛中给出了这样一个答案。