Utworzyłem schemat w SQL Azure i przyznałem następujące uprawnienia roli bazy danych:
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;
Dzięki wyżej zdefiniowanym uprawnieniom myuser
można tworzyć / upuszczać własny schemat, więc aby rozwiązać problem, wypróbowałem pozwolenie ALTER ANY SCHEMA. Ale to uprawnienie również odmawia użytkownikowi tworzenia / upuszczania tabel.
Jakie uprawnienia są wymagane, aby użytkownik mógł wykonać cokolwiek w ramach własnego schematu, ale nie mógł tworzyć ani upuszczać samego schematu?