2012-09-12 8 views
5

Ich schrieb eine kleine App zum Sichern von SQL Azure-Datenbanken mit dem sehr nützlichen Befehl 'CREATE AS COPY OF' in SQL Azure. z.B.Welche Berechtigungen erforderlich sind, um Datenbanken in SQL Azure zu kopieren

Ich führe diesen Befehl mit der Admin-Login (erste Anmeldung erhalten Sie beim Erstellen eines Servers). Meine Frage: Was sind die minimalen Berechtigungen, die ein neuer Login benötigt, um den obigen Befehl auszuführen?

Bisher ist hier, was ich getan habe:

-- 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'; -- 

Und das Ergebnis, wenn die oben CREATE DATABASE Befehl ausführen:

CREATE DATABASE permission denied in database 'MyOldDB'. 
+0

Hallo - Sie müssen mit dem Master verbunden sein, wenn Sie den Befehl CREATE DATABASE ausführen. Stellen Sie außerdem sicher, dass das von Ihnen verwendete Konto Teil der Datenbankrolle dbmanager (im Master) ist. Das ist die Erlaubnis, die du brauchst. Hier ist die MSDN-Dokumentation: http://msdn.microsoft.com/en-us/library/windowsazure/ee336274.aspx –

+0

Ja, ich führe den Create Database-Befehl von "Master". Ja, das neue Login ist dbmanager in master. –

+1

Ich habe Ihre Schritte versucht und DBCreator als db_owner der Quelldatenbank hinzugefügt. Ich habe den gleichen Fehler. Dann erinnerte ich mich daran, dass es eine zusätzliche Einschränkung gab ... im Grunde muss der Benutzer, der die CREATE DATABASE-Anweisung ausgibt, der "ursprüngliche" Benutzer sein, der die Quelldatenbank erstellt hat. –

Antwort

1

ich nicht die Rolle db_owner zu neuen Login hinzufügen könnte, der Befehl

EXEC sp_addrolemember 'db_owner', 'NewLogin' 

führt den Fehler

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

Aber mit der DBManager Rolle arbeitet

EXEC sp_addrolemember 'dbmanager', 'NewLogin' 

Es gibt nützliche Informationen in dem Artikel Managing Databases and Logins in Windows Azure SQL Database.

Verwandte Themen