2012-02-11 14 views
8

Qualcuno potrebbe dirmi come concedere le autorizzazioni per il database in SQL Azure?Come impostare le autorizzazioni per il database in sql azure?

Quando eseguo creare query di creazione tabella, sto finendo con seguente messaggio:

autorizzazione CREATE TABLE negata nel database testdb

Grazie in anticipo :)

+0

quale utente vi state collegando SQL Azure come.? È un utente che ha le autorizzazioni per creare una tabella (ad esempio, l'utente amministratore creato durante la creazione del server SQL Azure)? – mcollier

risposta

0

SQL Azure utilizza la stessa modalità di protezione di SQL Server. Sembra che tu usi un utente non-dbo per creare una tabella. Penso che tu possa usare il comando GRANT per ottenere il permesso appropriato.

+0

SQL Azure funziona in modo leggermente diverso da SQL Server in termini di sicurezza: utilizza ruoli diversi per gli account di accesso e gli utenti IIRC. – jamiebarrow

1

Verificare che non si stia tentando di eseguire lo script di creazione tabella nel database master.

6

Idealmente, si assegnano solo le autorizzazioni necessarie per l'utente. Se hai appena creato un nuovo utente che si desidera essere in grado fare nulla nel nuovo database, è possibile eseguire il seguente comando all'interno della banca di dati utilizzando un utente Server Admin:

EXEC sp_addrolemember 'db_owner', 'YourNewUser'; 
3

Date un'occhiata a questi script .Questo potrebbe non essere lo script esatto che si sta cercando for.But questo vi aiuterà a creare lo script che si desidera

STEP1: Ran questi script su masterdb azzurro

CREATE LOGIN mydb_admin 
WITH PASSWORD = 'nnn' 
GO 
CREATE LOGIN mydb_user 
WITH PASSWORD = 'nnnnnnnnn 
GO 

'

Step2: Ran gli script sotto sul azzurro reale db ad esempio, MYDB

CREATE USER mydb_admin FROM LOGIN mydb_admin ; 
EXEC sp_addrolemember 'db_datareader', 'mydb_admin'; 
EXEC sp_addrolemember 'db_datawriter', 'mydb_admin'; 
GRANT CONNECT TO mydb_admin; 
GRANT SELECT TO mydb_admin; 
GRANT EXECUTE ON [dbo].[procDumpRowsInto_De_Common] TO [mydb_admin] AS [dbo] 

CREATE USER mydb_user FROM LOGIN mydb_user; 
EXEC sp_addrolemember 'db_datareader', 'mydb_user'; 
EXEC sp_addrolemember 'db_executor', 'mydb_user'; 
GRANT CONNECT TO mydb_user; 
GRANT SELECT TO mydb_user; 
+0

Verifica la formattazione del codice. sembra che 'GO sia stato tipizzato male. –

Problemi correlati