Ho creato uno schema in SQL Azure e concesso le seguenti autorizzazioni a un ruolo del database:
CREATE ROLE myrole AUTHORIZATION dbo;
EXEC sp_addrolemember 'myrole', 'myuser';
CREATE SCHEMA myschema AUTHORIZATION dbo;
GRANT ALTER, CONTROL, DELETE, EXECUTE, INSERT, REFERENCES, SELECT, UPDATE, VIEW
DEFINITION ON SCHEMA::myschema TO myrole;
GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO myrole;
Attraverso le autorizzazioni sopra definite è myuser
possibile creare / eliminare il proprio schema, quindi per ovviare al problema ho provato l'autorizzazione ALTER ANY SCHEMA. Ma questa autorizzazione nega anche all'utente di creare / eliminare tabelle.
Quali autorizzazioni sono necessarie per consentire all'utente di fare qualsiasi cosa all'interno del proprio schema ma non essere in grado di creare o eliminare lo schema stesso?