12 votos

Cómo cambiar el nombre de una Base de datos en un Servidor SQL server Amazon RDS Instancia?

Intentos a través de SQL Server Management Studio y Transact SQL para cambiar el nombre de una base de datos alojada en un Servidor SQL server Amazon RDS instancia resultar en la siguiente error.

El usuario no tiene permiso para modificar la base de datos de Morningstar', el la base de datos no existe, o la base de datos no está en un estado que permite las comprobaciones de acceso.

Tenga en cuenta que esta es la instrucción Transact-SQL que he probado.

ALTER DATABASE <OldName> Modify Name = <NewName>;

La mejor opción que he llegado hasta ahora es restaurar una copia de la base de datos original con el nuevo nombre y, a continuación, eliminar el original. Ver a mi StackOverflow post para más detalles sobre cómo hacer esto.

Hay, al menos, las siguientes desventajas de este enfoque.

  1. Las operaciones de importación y exportación para una bacpac puede tomar un largo tiempo.
  2. Las aplicaciones o sitios web que realizan escribe a la base de datos se necesita para ser tomado fuera de línea durante todo el proceso.
  3. Hay pasos del manual, que puede provocar errores.
  4. El RDS instancia tendrá que ser lo suficientemente grande como para albergar a dos copias de la base de datos si desea dejar el original no como una reversión de la estrategia hasta que el nuevo está disponible.

Puede alguien sugerir un enfoque alternativo que no tiene estos inconvenientes?

Actualización: estoy interesado en cambiar el nombre de una base de datos SQL Server que está alojado dentro de una Instancia de RDS - no la Instancia de RDS.

1voto

Scott Munro Puntos 131

AWS proporciona la siguiente información en el caso de que me abrieron (parafraseado).

Aunque el usuario maestro es un miembro de la función de base de datos db_owner, cambiar el nombre de una base de datos requiere de un cambio en el sys.sysdbreg que está en la base de datos master. La membresía en la función db_owner no proporciona este permiso.

La solución que he descrito en mi pregunta es el método que recomiendo. Yo he pedido la confirmación de que no hay medio más fácil de copiar las bases de datos desde y hacia el RDS de la que he descrito en mi StackOverflow post.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: