2014-12-04 144 views
4

我試圖通過將數據層應用程序(.bacpac文件)從Amazon RDS實例遷移到其他SQL Server數據庫,但導入沒有成功。所以現在我想刪除數據庫(裏面是空的),當我嘗試:AWS RDS SQL Server無法刪除數據庫

DROP DATABASE mydatabase; 

我得到的錯誤:

Cannot drop the database 'mydatabase', because it does not exist or you do not have permission

一些背景:

  • 我已經嘗試使用SQL Server Management Studio,並選擇關閉連接:同樣的錯誤。
  • 我以主用戶身份登錄。
  • 我可以創建和刪除其他數據庫,但不是這個。
  • 我只對這個數據庫有這些有效的權限:CONNECT,SHOWPLAN,VIEW DATABASE STATE,VIEW DEFINITION(不知道這是爲什麼或者怎麼可能)。

任何幫助,非常感謝!

回答

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服務器 - 需要數據庫控制許可或更改任何數據庫權限,或者在db_owner固定數據庫角色的成員。

Azure SQL數據庫 - 只有服務器級主體登錄(由供應進程創建)或dbmanager數據庫角色成員可以刪除數據庫。

並行數據倉庫 - 需要數據庫的CONTROL權限或ALTER ANY DATABASE權限或db_owner固定數據庫角色的成員身份。

1

我遇到了同樣的問題。嘗試使用.bacpac通過SSMS恢復數據庫後,它會失敗,併爲您留下一個數據庫,您似乎沒有權限刪除數據庫。

解決方法是使用rdsadmin重命名函數將其重命名爲其他內容,然後似乎修復權限問題並允許您將其刪除。

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

然後就放下數據庫。希望能幫助處於同樣困境的其他人。

+0

最重要的是,我發現我還需要通過AWS控制檯重置主數據庫密碼。您可以將其設置爲完全相同的密碼,但只有在完成此操作後,重新命名才能進行。 – 2017-08-03 09:58:48