edu*_*men 9 database sql-server amazon-web-services amazon-rds
我尝试通过导出数据层应用程序(.bacpac文件)从Amazon RDS实例迁移SQL Server数据库到其他实例,但导入未成功.所以现在我想删除数据库(这是空的),当我尝试:
DROP DATABASE mydatabase;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无法删除数据库'mydatabase',因为它不存在或您没有权限
一些背景:
CONNECT,SHOWPLAN,VIEW DATABASE STATE,VIEW DEFINITION(不知道为什么还是这怎么可能).任何帮助是极大的赞赏!
我遇到了同样的问题.尝试使用.bacpac通过SSMS还原数据库后,它会失败,并为您提供一个您似乎无权删除的数据库.
解决方法是使用rdsadmin重命名功能将其重命名为其他内容,然后似乎修复了权限问题并允许您删除它.
EXEC rdsadmin.dbo.rds_modify_db_name N'<OldName>', N'<NewName>'
Run Code Online (Sandbox Code Playgroud)
然后放下数据库.希望能帮助其他人处于同样的困境.
这是旧线程的答案,但谁知道呢,它可能会帮助遇到相同问题的人。
我遇到了同样的问题,但就我而言,我的数据库处于离线模式。如果数据库处于离线模式,则不允许您使用 drop 命令删除它。首先,您应该通过运行此 sp 使数据库重新联机,然后执行 drop table 命令。
EXEC rdsadmin.dbo.rds_set_database_online databasename
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您的数据库位于多可用区部署中,则需要运行以下命令来删除这些数据库:
EXECUTE msdb.dbo.rds_drop_database N'DBName'
Run Code Online (Sandbox Code Playgroud)
听起来您不是正确角色的成员。
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 固定数据库角色的成员身份。