J'ai créé un schéma dans SQL Azure et accordé les autorisations suivantes à un rôle de base de données:
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;
Grâce aux autorisations définies ci-dessus, vous myuser
pouvez créer / supprimer son propre schéma, afin de surmonter le problème, j'ai essayé l'autorisation ALTER ANY SCHEMA. Mais cette autorisation empêche également l'utilisateur de créer / supprimer des tables.
Quelles autorisations sont nécessaires pour permettre à l'utilisateur de faire quoi que ce soit au sein de son propre schéma sans pouvoir créer ou supprimer le schéma lui-même?
la source
Notez que puisque le nouveau schéma a l'autorisation de "dbo", l'utilisateur pourra accéder indirectement à tous les objets de base de données où le schéma appartient à dbo.
Exemple:
Il s'agit d'un fonctionnement correct du moteur SQL Server; les autorisations imprègnent d'autres schémas avec la même autorisation. Pour restreindre cet accès, voici une option pour la création de schéma:
la source