Question

Le script de pré-déploiement (Script.PreDeployment.sql) est-il le meilleur endroit pour placer les commandes sql qui créent des objets au niveau du serveur (en particulier les connexions dans mon cas)?

J'ai besoin de créer des connexions serveur pour les utilisateurs de la base de données dans le projet et cela semble le seul endroit vaguement logique pour les placer car tout le reste dans la structure du projet (créé à partir de l'inversion de notre base de données de développement) est spécifique à la base de données.Je voulais donc simplement vérifier où les autres stockent leurs commandes au niveau du serveur lorsqu'ils travaillent avec des projets de base de données Visual Studio.

Merci beaucoup.

Était-ce utile?

La solution

Tout ce dont vous avez besoin avant de déployer votre base de données se trouverait dans ce script.

Dans notre cas, nous ajoutons des connexions dans le script de post-déploiement.Ils ne sont pas nécessaires lorsque nous déployons la base de données, et nous avons décidé de mettre toutes les commandes liées à la sécurité au même endroit.

IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = N'$(DefaultLogin)')
BEGIN
    BEGIN TRY
        CREATE LOGIN [$(DefaultLogin)] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
    END TRY
    BEGIN CATCH
        -- A try-catch is needed in case a user with a different name is created for the LOGIN specified.
    END CATCH
END
GO

IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'$(DefaultLogin)')
BEGIN
    BEGIN TRY
        CREATE USER [$(DefaultLogin)] FOR LOGIN [$(DefaultLogin)] WITH DEFAULT_SCHEMA=[dbo]
        -- The db_owner role is added to the current database.
        EXEC sp_addrolemember N'db_owner', N'$(DefaultLogin)'
    END TRY
    BEGIN CATCH
        -- A try-catch is needed in case a user with a different name is created for the LOGIN specified.
    END CATCH
END

Voici le préet référence après le déploiement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top