Pergunta

Eu tenho várias contas de usuário e contas de servidor que preciso criar no SQL Azure (e em outros 4 ambientes para (dev, qa, uat & pré-produção) e estou tendo alguns problemas.

Problema 1. Criar login deve ser feito no mestre / criar usuário deve ser feito no banco de dados. Mas como você não pode mudar de dados com um Use Declaração, pelo menos vou precisar fazer isso em 2 lotes.

Problema 2. Você parece não ser capaz de executar o código de login/criação do usuário em sql dinâmico ou como parte de um IF Bloco para que eu não possa fazer uma verificação, se não existir, verifique cada instrução CREATE.

Estou mexendo aqui, ou existem outras maneiras fáceis/robustas de escrever a criação de usuários de logins e dB SQL com alguma verificação básica de existência no SQL Azure?

Foi útil?

Solução

Você deve ser capaz de usar o PowerShell para o Azure para realizar o que precisa.

Aqui está um exemplo de como criar banco de dados:http://blogs.msdn.com/b/windowsazure/archive/2013/02/07/windows-azure-sql-database-management-with-powershell.aspx

Aqui está um exemplo do PowerShell para criar usuários de SQL:http://sqldbawithabeard.com/2013/09/23/add-user-ton-database-role-with-powershell/

Outras dicas

Tenho certeza de que você resolveu isso, mas acabei de usar esse script no Azure SQL para criar um login se não existir (executando contra master):

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

e este script para criar o usuário se ele não existir (em execução no banco de dados real):

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

(Como uma nota lateral, eu deveria estar puxando o valor do SID de sys.sql_logins e usando isso para procurar sys.sysusers, mas estou usando a convenção para contornar isso. Ver https://stackoverflow.com/a/36654590/1462905)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top