AWS RDS SQL Server无法删除数据库

时间:2014-12-04 20:57:22

标签: sql-server database amazon-web-services amazon-rds

我尝试通过导出数据层应用程序(.bacpac文件)将SQL Server数据库从Amazon RDS实例迁移到其他实例,但导入未成功。所以现在我想删除数据库(它是空的),当我尝试:

DROP DATABASE mydatabase;

我收到错误:

  

无法删除数据库'mydatabase',因为它不存在或   你没有许可

某些背景信息:

  • 我尝试过使用SQL Server Management Studio,并选择了紧密连接:同样的错误。
  • 我以主用户身份登录。
  • 我可以创建和删除其他数据库,但不能创建和删除这些数据库。
  • 我只对这个数据库拥有以下有效权限:CONNECTSHOWPLANVIEW DATABASE STATEVIEW DEFINITION(不知道为什么或如何实现这一点)。< / LI>

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:8)

我遇到了同样的问题。尝试使用.bacpac通过SSMS恢复数据库后,它会失败,并为您提供一个您似乎无权删除的数据库。

一种解决方法,是使用rdsadmin重命名功能将其重命名为其他内容,然后似乎修复了权限问题并允许您删除它。

EXEC rdsadmin.dbo.rds_modify_db_name N'<OldName>', N'<NewName>'

然后放弃数据库。希望帮助其他人处于同样的困境。

答案 1 :(得分:0)

听起来你不是正确角色的成员。

https://msdn.microsoft.com/en-us/library/ee240822.aspx

<强>权限

DAC只能由sysadmin或serveradmin固定服务器角色的成员或数据库所有者删除。名为sa的内置SQL Server系统管理员帐户也可以启动向导。

https://msdn.microsoft.com/en-us/library/ms178613.aspx

<强>权限

SQL Server - 需要对数据库具有CONTROL权限,或者具有ALTER ANY DATABASE权限或db_owner固定数据库角色的成员身份。

Azure SQL数据库 - 只有服务器级主体登录(由配置过程创建)或dbmanager数据库角色的成员才能删除数据库。

并行数据仓库 - 需要对数据库具有CONTROL权限,或者具有ALTER ANY DATABASE权限或db_owner固定数据库角色的成员身份。

答案 2 :(得分:0)

这是旧线程的答案,但答案将有助于解决同一问题的人。

我遇到了同样的问题,但就我而言,我的数据库处于脱机模式。如果数据库处于脱机模式,则不允许您使用drop命令将其删除。首先,您应该通过运行此sp使数据库恢复在线,然后执行drop table命令。

EXEC rdsadmin.dbo.rds_set_database_online databasename

答案 3 :(得分:-1)

如果数据库处于多可用区部署中,则需要运行以下命令来删除这些数据库:

EXECUTE msdb.dbo.rds_drop_database N'DBName'