Vra

Ek het 'n klomp gebruikersrekeninge en bedienerrekeninge wat ek op SQL Azure moet skep (en dan in 4 ander omgewings vir (dev,qa,uat & pre-produksie) en ek het 'n paar probleme.

Probleem 1.CREATE LOGIN moet op meester gedoen word / CREATE USER moet in die databasis gedoen word.maar aangesien jy nie databasisse kan verander met 'n Use stelling, ten minste gaan ek dit in 2 bondels moet doen.

Probleem 2.Dit lyk of jy nie in staat is om die CREATE LOGIN/CREATE USER-kode in óf dinamiese sql óf as deel van 'n IF blokkeer sodat ek nie 'n INDIEN BESTAAN NIE-kontrole rondom elke skepstelling kan doen nie.

Is ek hier gesnoeker, of is daar enige ander maklike/robuuste maniere om die skepping van SQL-aanmeldings en DB-gebruikers te skryf met 'n paar basiese bestaanskontrole in SQL Azure?

Was dit nuttig?

Oplossing

Jy behoort Powershell vir Azure te kan gebruik om te bereik wat jy nodig het.

Hier is 'n voorbeeld van hoe om 'n databasis te skep:http://blogs.msdn.com/b/windowsazure/archive/2013/02/07/windows-azure-sql-database-management-with-powershell.aspx

Hier is 'n powershell-voorbeeld van die skep van sql-gebruikers:http://sqldbawithabeard.com/2013/09/23/add-user-to-database-role-with-powershell/

Ander wenke

Ek is seker jy het dit opgelos, maar ek het sopas hierdie skrif in Azure SQL gebruik om 'n aanmelding te skep as dit nie bestaan ​​nie (loop teen master):

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

en hierdie script om die gebruiker te skep as dit nie bestaan ​​nie (loop teen die werklike databasis):

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

(As 'n kantnoot behoort ek die kantwaarde uit te trek sys.sql_logins en gebruik dit om op te soek sys.sysusers, maar ek gebruik konvensie om dit te omseil.Sien https://stackoverflow.com/a/36654590/1462905)

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top