Los objetos de soporte de diagrama de base de datos no se pueden instalar ... ningún propietario válido

132

Intenté crear un diagrama de base de datos con SQL Server 2008, pero se produce un error:

Los objetos de soporte del diagrama de base de datos no se pueden instalar porque esta base de datos no tiene un propietario válido. Para continuar, primero use la página Archivos del cuadro de diálogo Propiedades de la base de datos o la instrucción ALTER AUTHORIZATION para configurar el propietario de la base de datos a un inicio de sesión válido, luego agregue los objetos de soporte del diagrama de la base de datos.

Luego probé lo siguiente:

EXEC sp_dbcmptlevel 'Ariha', '90';
GO
ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator]
GO
USE Ariha
GO
EXECUTE AS USER = N'dbo' REVERT
GO

El siguiente error aparece:

Mensaje 15404, Nivel 16, Estado 11, Línea 1 No se pudo obtener información sobre el grupo / usuario de Windows NT 'WIN-NDKPHUPPNFL \ Administrador', código de error 0x534.

El problema es que el nombre de la PC ha cambiado a "DevPC" También cambié esto en el script de actualización, pero sigue siendo el mismo error 15404.

¿Qué puedo hacer para solucionar este molesto error?

Rookiano
fuente
44
También obtiene este problema cuando restaura una copia de seguridad desde una máquina diferente.
Tim Abell el
Cuando restaure una base de datos desde otra máquina, puede corregir este error ejecutando dos comandos: 1) alter authorization on database::[db_name] to [sa]y luego 2) ejecute el mismo comando nuevamente y reemplace [sa]con el usuario propietario de la base de datos inmediatamente después de la restauración.
James L.

Respuestas:

182

Debe considerar la cuenta de autenticación SQL para la propiedad de la base de datos; entonces no tiene que preocuparse por las cuentas que van y vienen, las bases de datos o las instancias que se mueven a diferentes servidores, y el próximo cambio de nombre de su PC. Tengo varios sistemas donde usamos:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];

O si desea cambiar el propietario a esa cuenta de administrador local, entonces debería ser:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];

Porque cambiar el nombre de la máquina a DevPCha eliminado la cuenta local que solía ser nombrada WIN-ND...\Administratory esto también ha invalidado al propietario actual de la base de datos.

Si SELECT @@SERVERNAME;no es exacto (debería decir DevPC), entonces para asegurarse de que el cambio de nombre de su servidor se haya establecido en SQL Server, también puede emitir lo siguiente:

EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO
Aaron Bertrand
fuente
se muestra: "WIN-NDKPHUPPNFL" Usé su instrucción sql y funciona ... pero ¿esta configuración es correcta o tengo que hacer algo más?
Novato
Bueno, eso realmente depende. Si necesita que su base de datos sea propiedad de un usuario de dominio / grupo de trabajo de Windows, entonces probablemente haya más trabajo por hacer. Personalmente, esto me parece problemático. Tal vez lea esto primero: sqlblog.com/blogs/tibor_karaszi/archive/2009/12/30/…
Aaron Bertrand
1
¿Hay algún problema al configurarlo sasi tiene la autenticación SQL deshabilitada?
Tim Abell el
@AaronBertrand Hola, tengo una pregunta. Por defecto, si creamos una base de datos, el propietario de la base de datos está configurado como usuario actual de Windows y si el usuario actual de Windows también es administrador. Por qué necesitamos cambiarlo a Sql Authantication Login. De hecho, no puedo entender este error. Si lo cambiamos a un inicio de sesión, funciona. Pero el administrador de inicio de sesión de Windows también es administrador del sistema. ¿Podrías ayudar?
UfukSURMEN
Restablecí un montón de bases de datos, y todas mostraron el error en la pregunta del OP, a pesar de que las propiedades de cada base de datos mostraban un usuario válido. Usé el primer comando para cambiarlo [sa]y luego lo volví a cambiar al usuario que decía que era antes, y viola, no más errores. No estoy seguro de por qué una restauración de la base de datos no estableció correctamente el propietario de la base de datos ...
James L.
208

En SQL Server Management Studio, haga lo siguiente:

  1. Haga clic derecho en su base de datos, elija propiedades
  2. Ir a la página de opciones
  3. En el menú desplegable a la derecha con la etiqueta "Nivel de compatibilidad", elija "SQL Server 2005 (90)" 3-1. elija "SQL Server 2008" si recibe un error de comparabilidad.
  4. Ir a la página de archivos
  5. Ingrese "sa" en el cuadro de texto del propietario. 5-1 o haga clic en las elipses (...) y elija un propietario legítimo.
  6. Presione OK

después de hacer esto, ahora podrá acceder a los Diagramas de la base de datos.

ingrese la descripción de la imagen aquí

Israel Margulies
fuente
2
¿Hay alguna razón por la cual una base de datos NO debería tener un propietario? Estoy entrando en la base de datos de productos de otra persona y no hay un conjunto de propietarios. ¿Fue esto intencional? (No hay nadie en el cliente que lo sepa).
Jason Kleban
La base de datos debe tener un propietario. Elegir "sa" en lugar de un propietario legítimo es simplemente una opción fácil para corregir el error anterior. Pero elegir un propietario legítimo también solucionó el problema.
Lesly Revenge
3
¿Alguien podría explicar el propósito de cambiar el nivel de compatibilidad en estos pasos? Solo establecer el propietario en archivos como 'sa' fue suficiente para mí (aunque no tengo habilitada la autenticación sql, por extraño que parezca).
Tim Abell el
Esto funcionó para mí. Sin embargo, necesitaba eliminar a mi usuario de Databasename> Seguridad.
Gezim
Esto funcionó para mí, en SQL Server 2017, usando Management Studio 17.9, sin necesidad del paso 1
Giorgio Barchiesi
7
USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

Funciona.

RafiO
fuente
5

Ingrese "SA" en lugar de "sa" en el cuadro de texto del propietario. Esto funcionó para mí.

Adarsh ​​VC
fuente
5

Yo tuve el mismo problema.
Quería ver mi diagrama, que creé el mismo día en el trabajo, en casa. Pero no pude por este mensaje.
Descubrí que el propietario de la base de datos era el usuario de mi computadora, como era de esperar. pero como la computadora está en el dominio de la compañía y no estoy conectado a la red de la compañía, la base de datos no pudo resolver al propietario.

¡Entonces lo que hice fue cambiar el propietario a un usuario local y funcionó!
Espero que esto ayude a alguien.

Cambia el usuario haciendo clic derecho en la base de datos, propiedades, archivos, propietario

PhpLou
fuente
3

Esto me lo arregló. Establece el propietario que se encuentra en la sección 'archivos' de la ventana de propiedades de la base de datos, y está tal como lo describe el estudio de administración.

USE [your_db_name]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

De acuerdo con la documentación de sp_changedbowner, esto está en desuso ahora.

Basado en la respuesta de Israel. La respuesta de Aaron es la variación no desaprobada de esto.

Tim Abell
fuente
3

Seleccione su base de datos - Haga clic derecho - Seleccione Propiedades

Seleccione ARCHIVO en el lado izquierdo de la página

En el cuadro PROPIETARIO, seleccione el botón que tiene tres puntos (...)

Ahora seleccione user 'sa y haga clic en OK

Anil Rana
fuente
0

Acabo de experimentar esto. Había leído las sugerencias en esta página, así como las sugerencias de la Autoridad SQL (que es lo mismo) y ninguna de las anteriores funcionó.

Al final, eliminé la cuenta y la recreé (con el mismo nombre de usuario / contraseña). Solo así, todos los problemas desaparecieron.

Lamentablemente, esto significa que no sé qué salió mal, así que no puedo compartir nada más.

Dave
fuente
0

1. Haga clic derecho en su Base de datos, 2. Luego seleccione las propiedades. 3. Seleccione la opción en niveles de compatibilidad, elija sql 2008 [100] si está trabajando con Microsoft sql 2008.

4. Luego seleccione el archivo y escriba (sa) en el cuadro de texto del propietario

El 100% me funciona.

Jefferson X Masonic
fuente
0

Una forma más fácil de resolver estos problemas sería hacer clic derecho en el nombre de su base de datos, elegir "Nueva consulta", escribir "exec sp_changedbowner 'sa'" y ejecutar la consulta. Entonces estarás listo para irte.

Lebone Mcdonald
fuente
0

debe ingresar como administrador, haga clic derecho en microsofft sql server management studio y ejecutar como administrador

abdelnaser rafat
fuente
0

Solo necesita ejecutarlo en el editor de consultas ALTERAR AUTORIZACIÓN EN LA BASE DE DATOS :: YourDatabase TO [dominio \ cuenta];

Nui San
fuente
-3

El verdadero problema es que el propietario predeterminado (dbo) no tiene un inicio de sesión asignado. Al intentar asignar el inicio de sesión sa al propietario de la base de datos, recibí otro error que indica "Usuario, grupo o rol 'dbo' ya existe ... ". Sin embargo, si prueba este código, en realidad funcionará:

EXEC sp_dbcmptlevel 'yourDB', '90';

Vamos

ALTERAR AUTORIZACIÓN EN LA BASE DE DATOS :: yourDB TO "yourLogin"

Vamos

use [yourDB]

Vamos

EJECUTAR COMO USUARIO = N'dbo 'REVERT

Vamos

Vandana
fuente
-3

haga clic derecho en su Base de Datos, luego seleccione propiedades. seleccione la opción en niveles de compatibilidad, elija sql 2005 [90] en lugar de 2008 si está trabajando con Microsoft sql 2008. luego seleccione el archivo y escriba (sa) en el cuadro de texto del propietario. probablemente funcionará

Ezzo gasmallah
fuente