Error: Al abrir diagramas de base de datos en SQL2005. "Database diagram support objects cannot be installed because this database does not have a valid owner"

Por un trabajo me enviaron un base de datos sobre SQL2005, y al restaurar y querer ir a los diagramas me salto el mensaje

Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.

Versión en español:

Los objetos de soporte del diagrama de base de datos no se pueden instalar. Esta base de datos carece de propietario válido. Para continuar, primero use la página Archivos del diálogo Propiedades de la base de datos o la instrucción ALTER AUTHORIZATION para establecer como propietario de la base de datos un inicio de sesión válido y después agregue los objetos de soporte del diagrama de base de datos.

 

image

 

Solución

Buscando la solución di con la documentación de este problema, y me funciono 😉

Restaurando el nivel de compatibilidad
       EXEC sp_dbcmptlevel 'database_name', '90';

La instalación de estos objetos de soporte puede generar un error en una base de datos adjuntada o restaurada a partir de otra instancia de SQL Server. Esto puede ocurrir cuando el nombre del propietario de la base de datos (almacenado en la base de datos) no es un nombre de inicio de sesión válido para la instancia de SQL Server a la que se adjunta o en la que se restaura la base de datos.

Utilice la siguiente instrucción Transact-SQL para cambiar el propietario de la base de datos a un inicio de sesión válido en la instancia de SQL Server y, después, vuelva a intentar realizar la operación de diagrama de base de datos.

    ALTER AUTHORIZATION ON DATABASE::miDatabase TO valid_login

 

Notas (…from msdn)

  • Aunque cualquier usuario con acceso a una base de datos puede crear un diagrama, una vez que se ha creado, los únicos usuarios que pueden verlo son su creador y cualquier miembro de la función db_owner.
  • La propiedad de los diagramas sólo se puede transferir a los miembros de la función db_owner. Esto sólo es posible si el propietario anterior del diagrama se ha eliminado de la base de datos.
  • Si se ha eliminado de la base de datos el propietario de un diagrama, el diagrama permanecerá en la base de datos hasta que el miembro de la función db_owner intente abrirlo. En ese momento, el miembro de db_owner podrá decidir si asume su propiedad.
  • Para instalar el soporte del diagrama de base de datos en SQL Server Management Studio, la base de datos debe estar en el nivel de compatibilidad de base de datos de SQL Server 2005

 

Otra posible solución (idem la anterior)

Llegue también a este solución que no la probé que es cambiar el db owner

          USE [<miDatabase>]
      GO
      EXEC dbo.sp_changedbowner @loginame = N’sa’, @map = false
      GO

Muy explicito el nombre “Cambiar el DB owner”, pero con podemos cambiar el propietario de cualquier asegurable mediante la instrucción ALTER AUTHORIZATION

 

Enlaces

45 comentarios en “Error: Al abrir diagramas de base de datos en SQL2005. "Database diagram support objects cannot be installed because this database does not have a valid owner"”

  1. Esta documentacion es lo maximo en claridad y orientacion, para solucionar este tipo de error, que se presenta con frecuencia. Gracias a su creador por dejar orientaciones tan claras y colaborar con los desarrolladores. Este blog de Jose A. Fernandez es digno de admirar. lo felicito y escriba mas articulos.
    atte. Omar E.

  2. Muchas gracias por esta informacion me resulto muy util espero que sigas ayudandonos en nuestros problemas. Probe la otra posible solucion y me funko sin problemas :>

  3. Excelente, combinando las opiniones pude resolver el problema, asi:
    Utilice la siguiente instrucción Transact-SQL para restaurar el nivel de compatibilidad

    EXEC sp_dbcmptlevel ‘database_name’, ’90’;

    Luego use la página Archivos del diálogo Propiedades de la base de datos o la instrucción ALTER AUTHORIZATION para establecer como propietario de la base de datos un inicio de sesión válido y después agregue los objetos de soporte del diagrama de base de datos.

    puede ser
    ALTER AUTHORIZATION ON DATABASE::miDatabase TO ‘sa’

  4. Excelente gracias por la ayuda….
    pero en otra maquina ejecute el alater authorization y no funciono. Q crees q pueda estar pasando. Ejecuto EXEC sp_dbcmptlevel ‘database_name’, ’90’;???

  5. Magnifico!!!
    el primero sirve para poder hacer diagramas osea q elimina el existente y te deja crear tus propios diagramas, el segundo permite ver el diagrama.

    Gracias por esta informacion!

  6. que buena a la primer restaurando nada mas me salio que bueno todos nos ayudamos a ser mejores por que algunos cobren mas de lo debido ,,gracias cumpa..

  7. La conexión con el servidor se ha establecido correctamente, pero se ha producido un error durante el proceso
    de inicio de sesión. Quisiera saber xq no me permite las conexiones remotas
    gracias

  8. Hola @Laly
    Te dejo unos enlaces, pero tienes que ir a “Administrador de configuración de SQL Server”, en Inicio >> Programas >> SQL Server 2008
    Alli podras configuracion la conexion remota

    Mas enlaces
    Configuración de superficie para servicios y conexiones
    http://technet.microsoft.com/es-es/library/ms188980(SQL.90).aspx

    Solucionar problemas de conexión del servidor y la base de datos
    http://technet.microsoft.com/es-es/library/ms156468.aspx

  9. Me sirvio mucho tu idea yo hice
    -clic derecho en la BD
    -PROPIEDADES
    – ARCHIVOS
    – VALIDE EL NOMBRE DEL SERVIDOR EN OWNER
    Y LISTO 🙂 GRACIAS

  10. OMFG!!!! jaja no se a kuantas paginas entre y no mas no podia resolver el problema… entro aki y en menos de 3 minutos ya esta jalando el diagrama…. muchas grax y muy buena explikacion 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *