web-dev-qa-db-fra.com

Les objets de support de diagramme de base de données ne peuvent pas être installés ... aucun propriétaire valide

J'ai essayé de créer un diagramme de base de données avec SQL Server 2008, mais une erreur s'est produite:

Objets de support de diagramme de base de données ne peut pas être installé car cela la base de données n'a pas de propriétaire valide . Pour continuer, utilisez d’abord la page Fichiers de la boîte de dialogue Propriétés de la base de données ou la déclaration ALTER AUTORIZATION définir le propriétaire de la base de données sur un .__ valide. connectez-vous, puis ajoutez le diagramme de la base de données objets de support.

Puis j'ai essayé ce qui suit:

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

Suivant erorr apparaît: 

Msg 15404, niveau 16, état 11, ligne 1 Impossible d'obtenir des informations sur Groupe/utilisateur Windows NT 'WIN-NDKPHUPPNFL\Administrateur', erreur code 0x534.

Le problème est que le nom du PC a été remplacé par "DevPC". Je l'ai également modifié dans le script de mise à jour, mais toujours la même erreur 15404. 

Que puis-je faire pour corriger cette erreur ennuyeuse?

124
Rookian

Vous devez envisager un compte d'authentification SQL pour la propriété de la base de données. vous n'avez pas à vous soucier des comptes entrants et futurs, des bases de données ou des instances transférées sur différents serveurs et du changement de nom de votre prochain ordinateur. J'ai plusieurs systèmes où nous utilisons:

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

Ou si vous voulez changer le propriétaire pour ce compte administrateur local, alors il devrait être:

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

En renommant la machine à DevPC, le compte local précédemment nommé WIN-ND...\Administrator a été éliminé, ce qui a également invalidé le propriétaire actuel de la base de données.

Si SELECT @@SERVERNAME; n'est pas exact (il devrait indiquer DevPC), vous pouvez également émettre les éléments suivants afin de vous assurer que le changement de nom du serveur est pris en charge dans SQL Server:

EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO
172
Aaron Bertrand

Dans SQL Server Management Studio, procédez comme suit:

  1. Clic droit sur votre base de données, choisissez les propriétés
  2. Aller à la page des options
  3. Dans le menu déroulant intitulé "Niveau de compatibilité", choisissez "SQL Server 2005 (90)" 3-1. choisissez "SQL Server 2008" si vous recevez une erreur de comparabilité.
  4. Aller à la page des fichiers
  5. Entrez "sa" dans la zone de texte du propriétaire . 5-1 ou cliquez sur les points de suspension (...) et choisissez un propriétaire légitime.
  6. Hit OK

après cela, vous pourrez maintenant accéder aux diagrammes de base de données.

enter image description here

199
Israel Margulies

Entrez "SA" au lieu de "sa" dans la zone de texte du propriétaire. Cela a fonctionné pour moi.

5
Adarsh V C
USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

Ça marche.

5
RafiO

J'ai eu le même problème.
Je voulais voir mon diagramme, que j'ai créé le même jour au travail, à la maison. Mais je ne pouvais pas à cause de ce message.
J'ai découvert que le propriétaire de la base de données était l'utilisateur de mon ordinateur, comme prévu. mais comme l'ordinateur est dans le domaine de l'entreprise et que je ne suis pas connecté au réseau de l'entreprise, la base de données n'a pas pu résoudre le propriétaire. 

Donc, ce que j'ai fait est changer le propriétaire en un utilisateur local et cela a fonctionné !!
J'espère que cela aide quelqu'un. 

Vous changez l’utilisateur en faisant un clic droit sur la base de données, les propriétés, les fichiers, le propriétaire

4
PhpLou

Cela a résolu le problème pour moi. Il définit le propriétaire trouvé dans la section 'fichiers' de la fenêtre des propriétés de la base de données et est conforme aux scripts du studio de gestion.

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

Selon la documentation de sp_changedbowner ceci est obsolète maintenant.

Basé sur la réponse d'Israël. La réponse d'Aaron est la variante non-obsolète de cela.

3
Tim Abell

Sélectionnez votre base de données - Clic droit - Sélectionnez Propriétés

Sélectionnez FILE dans le côté gauche de la page

Dans la zone PROPRIÉTAIRE, sélectionnez le bouton comportant trois points (…).

Maintenant, sélectionnez l'utilisateur ‘sa et cliquez sur OK

1
Anil Rana

1. Cliquez avec le bouton droit sur votre base de données, 2.Puis sélectionnez les propriétés. 3.Sélectionnez l’option dans les niveaux de compatibilité, choisissez SQL 2008 [100] si vous utilisez Microsoft SQL 2008. 

4.Alors sélectionnez le fichier et écrivez (sa) dans la zone de texte du propriétaire

100% travaille pour moi.

0

vous devez entrer en tant qu'administrateur et cliquer avec le bouton droit de la souris sur microsoft sql server management studio

0
abdelnaser rafat

Un moyen plus simple de résoudre ce problème consiste à cliquer avec le bouton droit de la souris sur le nom de votre base de données, de choisir "Nouvelle requête", de taper "exec sp_changedbowner 'sa'" et d'exécuter la requête. Ensuite, vous serez prêt à partir.

0
Lebone Mcdonald

Je viens de vivre cela. J'avais lu les suggestions sur cette page, ainsi que les suggestions de l'autorité SQL (qui est la même chose) et aucune des solutions ci-dessus ne fonctionnait.

En fin de compte, j'ai supprimé le compte et recréé (avec le même nom d'utilisateur/mot de passe). Juste comme ça, tous les problèmes ont disparu. 

Malheureusement, cela signifie que je ne sais pas ce qui ne va pas, donc je ne peux rien partager d'autre.

0
Dave

Il suffit de l'exécuter dans l'éditeur de requête. ALTER AUTHORIZATION ON DATABASE :: YourDatabase TO [domaine\compte];

0
Nui San