Versuche über SQL Server Management Studio und Transact SQL, eine auf einer SQL Server Amazon RDS-Instanz gehostete Datenbank umzubenennen, führen zu folgendem Fehler.
Der Benutzer hat keine Berechtigung zum Ändern der Datenbank 'Morningstar', die Datenbank existiert nicht oder die Datenbank befindet sich nicht in einem Zustand, der Zugriffsprüfungen zulässt.
Beachten Sie, dass dies die Transact SQL-Anweisung ist, die ich ausprobiert habe.
ALTER DATABASE <OldName> Modify Name = <NewName>;
Die beste Option, die ich bisher gefunden habe, besteht darin, eine Kopie der Originaldatenbank mit dem neuen Namen wiederherzustellen und dann das Original zu löschen. Weitere Informationen hierzu finden Sie in meinem StackOverflow-Beitrag .
Dieser Ansatz weist mindestens die folgenden Nachteile auf.
- Die Export- und Importvorgänge für einen Bacpac können lange dauern.
- Alle Anwendungen oder Websites, die Schreibvorgänge in die Datenbank ausführen, müssen während des gesamten Vorgangs offline geschaltet werden.
- Es sind manuelle Schritte erforderlich, die zu Fehlern führen können.
- Die RDS-Instanz muss groß genug sein, um zwei Kopien der Datenbank zu hosten, wenn Sie das Original als Rollback-Strategie dort belassen möchten, bis die neue verfügbar ist.
Kann jemand einen alternativen Ansatz vorschlagen, der diese Nachteile nicht aufweist?
Update: Ich möchte eine SQL Server-Datenbank umbenennen, die in einer RDS-Instanz gehostet wird - nicht in der RDS-Instanz.