Bonjour à tous,
Je suis sur SQLSrv2K5 et je voudrais savoir si il est possible de créér un trigger qui me rajouterai des droits sur des procedures stockées ou des vues.
Mes vues sont toutes créées comme ceci :
ABCVW_Nomdelavue1
ABCVW_Nomdelavue2
...
idem pour les SP:
ABCPR_Nomdelaprocedure1
ABCPR_Nomdelaprocedure2
J'ai déjà un script qui me permet de mettre les droits sur les vues et SP, que voici :
Je pensais faire un trigger comme ceci:
Code : 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39 DECLARE @sp as varchar(100) DECLARE @CMD varchar(8000) DECLARE cur_sp CURSOR FOR SELECT name FROM dbo.sysobjects WHERE xtype ='P' AND LEFT (name,5) = 'ABCPR' OPEN cur_sp FETCH cur_sp INTO @sp WHILE @@FETCH_STATUS = 0 BEGIN SELECT @CMD = 'GRANT EXEC ON ' + '[' + 'dbo' + ']' + '.' + '[' + @sp + ']' + ' TO ' + 'GROUP1' EXEC(@CMD) FETCH NEXT FROM cur_sp INTO @sp END CLOSE cur_sp DEALLOCATE cur_sp DECLARE @vw as varchar(100) DECLARE @CMD1 varchar(8000) DECLARE cur_sp CURSOR FOR SELECT name FROM dbo.sysobjects WHERE xtype ='V' AND LEFT (name,5) = 'ABCVW' OPEN cur_sp FETCH cur_sp INTO @vw WHILE @@FETCH_STATUS = 0 BEGIN SELECT @CMD1 = 'GRANT SELECT ON ' + '[' + 'dbo' + ']' + '.' + '[' + @vw + ']' + ' TO ' + 'GROUP1' EXEC(@CMD1) FETCH NEXT FROM cur_sp INTO @vw END CLOSE cur_sp DEALLOCATE cur_sp
CREATE TRIGGER mon_trigger
ON DATABASE FOR CREATE
...
Mais je n'arrive pas à determiner comment spécifier que ce sont uniquement les vues et sp commencant par ABC sur lesquelles je dois mettre les droits.
Merci par avance de votre aide.
Partager