SQL Azureで非常に有用な「CREATE AS COPY OF」コマンドを使用してSQL Azureデータベースをバックアップするための小さなアプリケーションを作成しました。例えばSQL Azureでデータベースをコピーするために必要なアクセス許可
CREATE DATABASE MyNewDB AS COPY OF MyOldDB
このコマンドは、管理者ログイン(サーバーの作成時に最初に取得する)で実行します。 私の質問:上記のコマンドを実行するためには新しいログインに必要な最低限の権限はありますか?
は、これまでのところ、ここで私がやったものだ:
-- IN MASTER DB --
CREATE LOGIN DBCreator WITH PASSWORD = '?????????????'
CREATE USER DBCreator FROM LOGIN DBCreator;
EXEC sp_addrolemember 'dbmanager', 'DBCreator';
-- IN MyOldDB --
-- (I ran this stuff when the previous commands didn't do it) --
CREATE USER DBCreator FROM LOGIN DBCreator;
EXEC sp_addrolemember 'db_datareader', 'DBCreator'; --
そして、上記のCREATE DATABASEコマンドで実行結果:
CREATE DATABASE permission denied in database 'MyOldDB'.
こんにちは - あなたは、CREATE DATABASEコマンドを実行すると、マスターに接続する必要があります。また、使用するアカウントが(masterの)dbmanagerデータベースロールの一部であることも確認してください。これは必要な許可です。以下はMSDNのドキュメントです:http://msdn.microsoft.com/en-us/library/windowsazure/ee336274.aspx –
はい、私は 'マスター'からデータベースの作成コマンドを実行しています。はい、新しいログインはmasterのdbmanagerです。 –
私はあなたの手順を試して、ソースデータベースのdb_ownerとしてDBCreatorを追加しました。私は同じエラーがあります。次に、追加の制限があることを思い出しました。基本的に、CREATE DATABASEステートメントを発行するユーザーは、ソースデータベースを作成した元のユーザーでなければなりません。 –