2012-09-12 11 views
5

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'. 
+0

こんにちは - あなたは、CREATE DATABASEコマンドを実行すると、マスターに接続する必要があります。また、使用するアカウントが(masterの)dbmanagerデータベースロールの一部であることも確認してください。これは必要な許可です。以下はMSDNのドキュメントです:http://msdn.microsoft.com/en-us/library/windowsazure/ee336274.aspx –

+0

はい、私は 'マスター'からデータベースの作成コマンドを実行しています。はい、新しいログインはmasterのdbmanagerです。 –

+1

私はあなたの手順を試して、ソースデータベースのdb_ownerとしてDBCreatorを追加しました。私は同じエラーがあります。次に、追加の制限があることを思い出しました。基本的に、CREATE DATABASEステートメントを発行するユーザーは、ソースデータベースを作成した元のユーザーでなければなりません。 –

答えて

1

私は新しいログインにdb_ownerロールを追加することができませんでしたが、コマンド

EXEC sp_addrolemember 'db_owner', 'NewLogin' 

でエラーが発生します

Cannot alter the role 'db_owner', because it does not exist or you do not have permission.

しかし、記事Managing Databases and Logins in Windows Azure SQL Databaseに有用な情報があり

EXEC sp_addrolemember 'dbmanager', 'NewLogin' 

DBManagerの役割を使用して動作します。

関連する問題