Sql server 2005 - changer le owner de tous les schemas

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 501 fois - Téléchargée 25 fois

Contenu du snippet

Dans le cas de migration de SQL Server 2000 vers SQL Server 2005, on peut se retrouver avec un grand nombre de schémas qui sont associés à de nombreux comptes.
En cas de nettoyage de ces users, on doit donc réattribuer les schémas à un utilisateur (tel que DBO).

Ce script permet de modifier le Owner de tous les schémas.

Source / Exemple :


USE [MaBase]
GO

DECLARE @NewOwner	AS VARCHAR(50)
DECLARE @SQLCMD		AS VARCHAR(MAX)	

SET @NewOwner = 'NouveauOwner'

DECLARE CURSORLISTCHEMA CURSOR FOR SELECT 'ALTER AUTHORIZATION ON SCHEMA::['+ SCHEMA_NAME +'] TO ['+ @NewOwner +']' 
			FROM INFORMATION_SCHEMA.SCHEMATA WHERE NOT (SCHEMA_OWNER LIKE 'db_%' 
					OR SCHEMA_OWNER = 'INFORMATION_SCHEMA' 
					OR SCHEMA_OWNER = 'guest' OR SCHEMA_OWNER = 'sys')
					AND NOT (SCHEMA_OWNER = @NewOwner)

OPEN CURSORLISTCHEMA
FETCH NEXT FROM CURSORLISTCHEMA INTO @SQLCMD
WHILE (@@fetch_status >= 0) 
	BEGIN 
		PRINT @SQLCMD
		EXECUTE(@SQLCMD)
		FETCH NEXT FROM CURSORLISTCHEMA INTO @SQLCMD
	END
CLOSE CURSORLISTCHEMA
DEALLOCATE CURSORLISTCHEMA

Conclusion :


Bon coding

Romelard Fabrice [MVP]

A voir également

Ajouter un commentaire

Commentaire

dedzep
Messages postés
55
Date d'inscription
vendredi 1 février 2002
Statut
Membre
Dernière intervention
8 février 2007
-
bravo pour ce code, mais aussi pour tout le reste de votre contribution

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.