2009-04-20 20 views
42

cuando accidentalmente clic en la pestaña Diagramas de base de datos, consigo uno de los siguientes errores:¿Cómo cambio el propietario de una base de datos de SQL Server?

objetos de soporte del diagrama de base de datos no se puede instalar debido a esta base de datos no tiene un propietario válido. Para continuar, primero utilice la página Archivos del cuadro de diálogo Propiedades de la base de datos o la instrucción ALTER AUTORIZACIÓN para establecer el propietario de la base a un inicio de sesión válido , a continuación, añadir la base de datos diagrama de objetos de soporte.

--- o ---

La base de datos no tiene uno o más de los objetos de soporte necesarios para utilizar de diagramas de base de datos. ¿Desea crearlos?

¿Cuál es la sintaxis para cambiar el propietario de esta base de datos a 'sa'?

+0

No entiendo por qué piensa que esto no tiene nada que ver con el dueño? Solo quiere saber si debería crear los objetos para hacer posibles los diagramas. –

+0

Si cambio el propietario, no me piden que cree los objetos. No estoy seguro de si se crean automáticamente después. –

Respuesta

68

para cambiar el propietario del objeto intente lo siguiente

EXEC sp_changedbowner 'sa' 

que sin embargo no es su problema, para ver los diagramas de las herramientas de objetos Da Vinci tienen que ser creados (verá mesas y procsos que comienzan con dt_) después de eso

+4

Según BOL: esta característica se eliminará en una versión futura de Microsoft SQL Server. Evite usar esta característica en nuevos trabajos de desarrollo y planee modificar las aplicaciones que actualmente usan esta característica. Use ALTERAR AUTORIZACIÓN en su lugar. https://msdn.microsoft.com/en-us/library/ms178630(v=sql.110).aspx –

3

Este es un mensaje para crear un grupo de objetos, como sp_help_diagram (?), Que no existen.

Esto no debería tener nada que ver con el propietario del archivo db.

+1

¿Puedes explicar por qué ya no me preguntan esto después de cambiar el propietario? ¿Los objetos se crean automáticamente o SQL Server simplemente deja de preguntarme porque mi cuenta ya no es el propietario? –

+0

En este caso, el inicio de sesión era propiedad del inicio de sesión que se había eliminado. No estoy seguro de por qué porque "sa" posee todas nuestras bases de datos. – gbn

62

Para cambiar el propietario de base de datos:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa 

a partir de SQL Server 2014 puede seguir utilizando sp_changedbowner así, a pesar de que Microsoft prometió eliminarlo en la versión "futura" después de SQL Server 2012. Sin embargo, lo eliminaron de SQL Server 2014 BOL.

+2

@ilter - no estoy seguro de entender su comentario. La pregunta era '¿Cuál es la sintaxis para cambiar el propietario de esta base de datos a' sa '?'. Creo que respondí esta pregunta. Si ejecuta esta declaración, el propietario del DB se cambiará a sa.Además, esta es la sintaxis recomendada para usar como opuesto al uso de sp_changedbowner más antiguo que probablemente se retirará eventualmente. –

0

Aquí es una manera de cambiar el dueño en todos los DBS (excluyendo Sistema)

EXEC sp_msforeachdb' 
USE [?] 
IF ''?'' <> ''master'' AND ''?'' <> ''model'' AND ''?'' <> ''msdb'' AND ''?'' <> ''tempdb'' 
BEGIN 
exec sp_changedbowner ''sa'' 
END 
' 
+1

No use sp_msforeachdb a menos que le gusten las bases de datos de vez en cuando, este es un problema documentado. – ConstantineK

Cuestiones relacionadas