Comment donner des droits dbo dans un schéma spécifique ?
Le db_owner, comme son nom l'indique, donne des droits au niveau de la DB, donc on est un cran au dessous.
J'aimerais qu'un utilisateur ne puisse accéder qu'à un schéma. Comment agir ?
Comment donner des droits dbo dans un schéma spécifique ?
Le db_owner, comme son nom l'indique, donne des droits au niveau de la DB, donc on est un cran au dessous.
J'aimerais qu'un utilisateur ne puisse accéder qu'à un schéma. Comment agir ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO USER_X;
Merci Frédéric, mais cela ne donnera que les droits DML. Ce que je souhaites principalement, ce sont les DDL/DCL.
Mais mon message n'était pas clair : j'aimerai qu'un développeur ne puisse modifier la structure des objets que d'un schéma.
??
Code : Sélectionner tout - Visualiser dans une fenêtre à part GRANT ALTER ON SCHEMA xxx TO xxx
Plus exactement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part GRANT ALTER ON SCHEMA::dbo TO USER_X
J'ai tout donné...
et pourtant
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part grant alter, control, create sequence,create table, delete, update, insert, execute, references, select, update, view definition on schema :: spt TO bidivers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 create table spt.toto (i int) Msg 262, Level 14, State 1, Line 1 CREATE TABLE permission denied in database 'BI_DIVERS'.
Ok... en sus du alter sur le schema, il faut le create au niveau base
Bonjour Fabien,
Cela semble fonctionner avec le GRANT sur le USER directement comme donné par SQLpro.
Voici un exemple:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 use master go DROP DATABASE IF EXISTS DBTEST CREATE DATABASE DBTEST USE DBTEST go CREATE USER [USER_DVP] WITHOUT LOGIN go CREATE SCHEMA Schema_DVP go CREATE SCHEMA Schema_DVP_ReadOnly GO GRANT CREATE TABLE TO [USER_DVP]; GRANT ALTER ON SCHEMA::Schema_DVP TO [USER_DVP]; GO EXECUTE AS USER = 'USER_DVP' CREATE TABLE Schema_DVP.testTable (i int) -- Commands completed successfully. CREATE TABLE Schema_DVP_ReadOnly.testTable (i int) -- The specified schema name "Schema_DVP_ReadOnly" -- either does not exist or you do not have permission to use it. REVERT
PS:Ok je vois que tu avais trouvé
Partager