web-dev-qa-db-fra.com

Comment changer le propriétaire d'une base de données SQL Server?

Lorsque je clique accidentellement sur l'onglet Diagrammes de base de données, j'obtiens l'une des erreurs suivantes:

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.

--- ou ---

La base de données n'a pas un ou plusieurs des objets de support requis pour utiliser base de données schématisant. Voulez-vous les créer?

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

52
Even Mien

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

EXEC sp_changedbowner 'sa'

mais ce n’est pas votre problème, pour voir les diagrammes, les objets de Da Vinci Tools doivent être créés (vous verrez des tables et des procs commençant par dt_)

84
SQLMenace

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

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa

Depuis SQL Server 2014, vous pouvez toujours utiliser sp_changedbowner, même si Microsoft a promis de le supprimer dans la version "future" après SQL Server 2012. Cependant, il l'a supprimé du SQL Server 2014 BOL.

76
Alex Aza

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

Cela ne devrait avoir rien à voir avec le propriétaire de la base de données.

3
gbn

Voici un moyen de changer le propriétaire sur ALL DBS (hors System)

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