问题
I tried to migrate a SQL Server database by Export Data-tier Application (.bacpac
file) from an Amazon RDS instance to other, but import didn't succeed. So now I want to delete the database (which is empty), when I try to:
DROP DATABASE mydatabase;
I get the error:
Cannot drop the database 'mydatabase', because it does not exist or you do not have permission
Some context:
- I've tried using SQL Server Management Studio, and choosing close connections: same error.
- I'm logged as master user.
- I can create and drop other databases, but not this one.
- I just have these effective permissions on this database:
CONNECT
,SHOWPLAN
,VIEW DATABASE STATE
,VIEW DEFINITION
(don't know why or how is this possible).
Any help is greatly appreciated!
回答1:
I ran into this same issue. After trying to restore a database via SSMS using a .bacpac, it fails and leaves you with a database that you appear to not have permissions to drop.
A workaround, is to use the rdsadmin rename function to rename it to something else, which then seems to fix the permission issue and allows you to drop it.
EXEC rdsadmin.dbo.rds_modify_db_name N'<OldName>', N'<NewName>'
Then just drop the DB. Hope that helps someone else in the same predicament.
回答2:
This is answer for old thread but the answer would help somebody running over the same issue.
I run in to the same problem , but in my-case my database was in offline mode. If the database is in offline mode , it won't allow you to drop it with drop command. first you should bring the database back to online by running this sp and then execute drop table command.
EXEC rdsadmin.dbo.rds_set_database_online databasename
回答3:
Sounds like your not a member of the correct role.
https://msdn.microsoft.com/en-us/library/ee240822.aspx
Permissions
A DAC can only be deleted by members of the sysadmin or serveradmin fixed server roles, or by the database owner. The built-in SQL Server system administrator account named sa can also launch the wizard.
https://msdn.microsoft.com/en-us/library/ms178613.aspx
Permissions
SQL Server - Requires the CONTROL permission on the database, or ALTER ANY DATABASE permission, or membership in the db_owner fixed database role.
Azure SQL Database - Only the server-level principal login (created by the provisioning process) or members of the dbmanager database role can drop a database.
Parallel Data Warehouse - Requires the CONTROL permission on the database, or ALTER ANY DATABASE permission, or membership in the db_owner fixed database role.
回答4:
If your database is in a Multi-AZ deployment, then you need to run this command to drop those databases:
EXECUTE msdb.dbo.rds_drop_database N'DBName'
来源:https://stackoverflow.com/questions/27303927/aws-rds-sql-server-unable-to-drop-database