2009-04-20 6 views
42

Lorsque je clique accidentellement sur l'onglet diagrammes de base de données, je reçois une des erreurs suivantes:Comment modifier le propriétaire d'une base de données SQL Server?

objets de support des diagrammes de base de données ne peut pas être installé car cette base de données ne dispose pas d'un propriétaire valide. Pour continuer, d'abord utiliser la page Fichiers de la base de données boîte de dialogue Propriétés ou l'instruction ALTER AUTORISATION pour définir le propriétaire de la base de données à une connexion valide, puis ajoutez le diagramme base de données objets de support.

--- ou ---

La base de données n'a pas un ou plusieurs des objets de support nécessaires à l'utilisation de la base de données schématisation . Voulez-vous créer ?

Quelle est la syntaxe pour changer le propriétaire de cette base de données en 'sa'?

+0

Je ne comprends pas pourquoi vous pensez que cela n'a rien à voir avec le propriétaire? Il veut juste savoir s'il doit créer les objets pour rendre les diagrammes possibles. –

+0

Si je change de propriétaire, je ne suis pas invité à créer les objets. Je ne suis pas sûr qu'ils soient créés automatiquement par la suite. –

Répondre

68

pour changer le propriétaire de l'objet essayez ce qui suit

EXEC sp_changedbowner 'sa' 

qui est cependant pas votre problème, pour voir les diagrammes les objets Da Vinci Tools doivent être créés (vous verrez des tables et des procs qui commencent par DT_) après

+4

Selon BOL: cette fonctionnalité sera supprimée dans une future version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans les nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez ALTER AUTHORIZATION à la place. https://msdn.microsoft.com/en-us/library/ms178630(v=sql.110).aspx –

3

Il s'agit d'une invite pour créer un groupe d'objets, tels que sp_help_diagram (?), Qui n'existent pas.

Cela ne devrait rien avoir à voir avec le propriétaire du db.

+1

Pouvez-vous expliquer pourquoi je ne suis plus invité à cela après avoir changé de propriétaire? Les objets sont-ils créés automatiquement ou SQL Server arrête-t-il de me le demander parce que mon compte n'est plus le propriétaire? –

+0

Dans ce cas, la base de données appartenait à une connexion qui avait été supprimée. Je ne sais pas pourquoi parce que "sa" possède toutes nos bases de données. – gbn

62

Pour changer le propriétaire de la base de données:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa 

à partir de SQL Server 2014, vous pouvez toujours utiliser sp_changedbowner aussi bien, même si Microsoft promis de le supprimer dans la "future" version après SQL Server 2012. Ils l'ont supprimé de SQL Server 2014 BOL cependant.

+2

@ilter - je ne suis pas sûr d'avoir compris votre commentaire. La question était "Quelle est la syntaxe pour changer le propriétaire de cette base de données en 'sa'? '. Je crois avoir répondu à cette question. Si vous exécutez cette instruction, le propriétaire de la base de données sera remplacé par sa.De plus, il est recommandé d'utiliser la syntaxe inverse à l'utilisation de sp_changedbowner plus ancien qui sera probablement retiré ultérieurement. –

0

Voici un moyen de changer le propriétaire sur ALL DBS (Système hors)

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

N'utilisez pas sp_msforeachdb à moins que vous ne préfériez occasionnellement des bases de données manquantes, il s'agit d'un problème documenté. – ConstantineK

Questions connexes