Vous pouvez utiliser les SQL Server Command Line Utilities (il existe des versions différentes de ce paquet, assurez-vous de choisir celui qui correspond à votre système d'exploitation et est compatible avec votre version de SQL Server). L'utilitaire sqlcmd vous permet d'entrer des instructions, des procédures système et des fichiers script Transact-SQL à l'invite de commande.
Vous pouvez maintenant créer un script SQL (par exemple createuser.sql):
USE [$(DatabaseName)]
GO
-- If the user exists, drop it first
IF EXISTS (select principal_id FROM sys.database_principals where [name] = '$(DatabaseUser)' AND type = 'U')
BEGIN
DROP USER [$(DatabaseUser)]
END
-- Create it
CREATE USER [$(DatabaseUser)] FOR LOGIN [$(SqlLogin)]
-- And add it to the Role db_datareader
ALTER ROLE db_datareader ADD MEMBER [$(DatabaseUser)]
En utilisant SQLCMD vous pouvez maintenant appeler ce script à partir de la ligne de commande comme ceci:
sqlcmd -v DatabaseName="MyDatabase" DatabaseUser="Pete" SqlLogin="John" -i "createuser.sql" -S "mymachine\mySqlInstance"
Vous pouvez maintenant créer un fichier de projet MSBuild avec un Exec
tas k qui appellera cette déclaration pour vous:
<Exec Command="sqlcmd -v ..." ... >
</Exec>
S'il vous plaît noter que l'utilisateur qui exécute le sqlcmd doit disposer des autorisations dans Sql Server pour effectuer les actions scriptées. SqlCmd vous permet de spécifier un nom d'utilisateur et un mot de passe spécifiques.