Question

J'ai un tas de comptes d'utilisateurs et de comptes de serveurs que j'ai besoin de créer sur SQL Azure (puis dans 4 autres environnements pour (Dev, QA, UAT et pré-production) et je rencontre certains problèmes.

Problème 1. Création de connexion doit être effectuée sur Master / Create User DOIT être effectuée dans la base de données. Mais comme vous ne pouvez pas changer de base de données avec un Use Déclaration, au moins, je vais devoir le faire en 2 lots.

Problème 2. Vous ne semblez pas être en mesure d'exécuter le code utilisateur de connexion / création dans SQL dynamique ou dans le cadre d'un IF Bloquer donc je ne peux pas faire sinon il n'y a pas de vérification autour de chaque instruction Create.

Suis-je spiriqué ici, ou y a-t-il d'autres moyens faciles / robustes de scénarier la création d'utilisateurs de connexion SQL et de DB avec une vérification de l'existence de base dans SQL Azure?

Était-ce utile?

La solution

Vous devriez pouvoir utiliser PowerShell pour Azure pour accomplir ce dont vous avez besoin.

Voici un exemple de la façon de créer une base de données:http://blogs.msdn.com/b/windowsazure/archive/2013/02/07/windows-azure-sql-database-management-with-powershell.aspx

Voici un exemple PowerShell de créer des utilisateurs SQL:http://sqldbawithabeard.com/2013/09/23/add-user-to-database-role-with-powershell/

Autres conseils

Je suis sûr que vous avez résolu ce master):

IF NOT EXISTS (SELECT * FROM sys.sql_logins WHERE name = 'Blah')
    CREATE LOGIN Blah WITH PASSWORD = 'BS#ah12!!@#' 
ELSE
    PRINT 'Already exist'

et ce script pour créer l'utilisateur s'il n'existe pas (en cours d'exécution dans la base de données réelle):

IF NOT EXISTS (SELECT * FROM sys.sysusers WHERE name='Blah')
    CREATE USER Blah FOR LOGIN Blah WITH DEFAULT_SCHEMA = dbo
ELSE
    PRINT 'Already exists'

(En tant que note latérale, je devrais tirer la valeur SID de sys.sql_logins et en utilisant ça pour rechercher sys.sysusers, mais j'utilise la convention pour contourner cela. Voir https://stackoverflow.com/a/36654590/1462905)

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