質問

SQL Azureで作成する必要があるユーザーアカウントとサーバーアカウントがたくさんあります(そして、その後、他の4つの環境(Dev、QA、UAT&Pre-Production)で、いくつかの問題に遭遇しています。

問題1.マスターでログインを作成する必要があります /作成ユーザーはデータベースで実行する必要があります。ただし、aでデータベースを切り替えることができないため Use 声明、少なくとも2つのバッチでこれを行う必要があります。

問題2.動的SQLまたはの一部として、CreateLogin/Createユーザーコードを実行できないようです IF ブロックして、各createステートメントの周りに存在しない場合は存在しない場合はできません。

私はここでスヌーカーされていますか、それともSQLログインとDBユーザーの作成をスクリプト化する他の簡単で堅牢な方法はありますか?

役に立ちましたか?

解決

あなたが必要なものを達成するためにAzureにPowerShellを使用できるはずです。

データベースの作成方法の例は次のとおりです。http://blogs.msdn.com/b/windowsazure/archive/2013/02/07/windows-azure-sql-database-management-with-powershell.aspx

SQLユーザーの作成のPowerShellの例は次のとおりです。http://sqldbawithabeard.com/2013/09/23/add-user-to-database-role-with-powershell/

他のヒント

あなたはこれを解決したと確信していますが、Azure SQLでこのスクリプトを使用して、存在しない場合にログインを作成しました(実行しています master):

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

そして、ユーザーが存在しない場合にユーザーを作成するこのスクリプト(実際のデータベースに対して実行されます):

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

(サイドノートとして、私はSID値をから引き出す必要があります sys.sql_logins それを使用して検索します sys.sysusers, 、しかし、私はそれを回避するためにコンベンションを使用しています。見る https://stackoverflow.com/a/36654590/1462905)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top