SQL Azure'daki çok kullanışlı "CREATE AS COPY OF" komutunu kullanarak SQL Azure veritabanlarını yedeklemek için küçük bir uygulama yazdım. Örneğin.SQL Azure'da veritabanlarını kopyalamak için gereken izinler
CREATE DATABASE MyNewDB AS COPY OF MyOldDB
Bu komutu yönetici oturumuyla çalıştırıyorum (sunucu oluştururken ilk girişiniz). Soru: Yukarıdaki komutu çalıştırmak için yeni bir girişin gerekmesi gereken minimum izinler nelerdir?
Şimdiye kadar burada yaptıklarım var:
-- 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'; --
Ve yukarıda CREATE DATABASE komutu çalıştıran sonucu:
CREATE DATABASE permission denied in database 'MyOldDB'.
Merhaba - CREATE DATABASE komutunu çalıştırdığınızda ana bilgisayara bağlı olmanız gerekir. Ayrıca kullandığınız hesabın dbmanager veritabanı rolünün (master'da) bir parçası olduğundan emin olun; İhtiyacın olan bu izin. İşte MSDN belgelerine: http://msdn.microsoft.com/en-us/library/windowsazure/ee336274.aspx –
Evet, veritabanı oluştur komutunu 'master' dan çalıştırıyorum. Evet, yeni giriş master'da dbmanager. –
Adımlarınızı denedim ve ayrıca DBCreator'ı kaynak veritabanının db_owneri olarak ekledim. Aynı hatayı aldım. Sonra ek bir kısıtlama olduğunu hatırladım ... temel olarak CREATE DATABASE deyimini veren kullanıcı, kaynak veritabanını oluşturan "özgün" kullanıcı olmalıdır. –