Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Script de droits sur des tables

2 réponses
Avatar
Gérard Lambert
Bonjour,

Je souhaite accorder les droits de selection,mise a jour, insertion,
deletion à un utilisateur sur toutes les tables utilisateur d'une base de
données, en faisant un script.
J'ai essayé de récupérer le nom des tables concernées dans la table
sysobjects de la base en question, puis par le biais d'un curseur,
d'accorder les autorisation sur chaque tables.
Ca donne ça

--La requete select permert de récupérer les tables utilisateur uniquement
For (select name from dbo.sysobjects where status >0 and xtype in ('u'))
Open CurseurDroits
Fetch Next From CurseurDroits
Into @Table

--Boucler sur les elements
While @@Fetch_Status = 0
Begin
Grant select,update,delete,insert
on @Table
to Utilisateur

--lire l'element suivant
Fetch Next From CurseurDroits
Into @Table
End

Close CurseurDroits
DeAllocate CurseurDroits

GO

mais ça ne marche pas du tout...
Quelqu'un connaitrait il un moyen plus efficace de parvenir au résultat
escompté?
Merci par avance de votre aide.

2 réponses

Avatar
bruno reiter [MVP]
si tu le mettais dans les roles de base db_datareader et db_datawriter?

br

"Gérard Lambert" wrote in message
news:
Bonjour,

Je souhaite accorder les droits de selection,mise a jour, insertion,
deletion à un utilisateur sur toutes les tables utilisateur d'une base de
données, en faisant un script.
J'ai essayé de récupérer le nom des tables concernées dans la table
sysobjects de la base en question, puis par le biais d'un curseur,
d'accorder les autorisation sur chaque tables.
Ca donne ça

--La requete select permert de récupérer les tables utilisateur uniquement
For (select name from dbo.sysobjects where status >0 and xtype in ('u'))
Open CurseurDroits
Fetch Next From CurseurDroits
Into @Table

--Boucler sur les elements
While @@Fetch_Status = 0
Begin
Grant select,update,delete,insert
on @Table
to Utilisateur

--lire l'element suivant
Fetch Next From CurseurDroits
Into @Table
End

Close CurseurDroits
DeAllocate CurseurDroits

GO

mais ça ne marche pas du tout...
Quelqu'un connaitrait il un moyen plus efficace de parvenir au résultat
escompté?
Merci par avance de votre aide.




Avatar
Fred BROUARD
Si cela peut t'aider :
http://sqlpro.developpez.com/SQL_AZ_G.html

A +

Gérard Lambert a écrit:
Bonjour,

Je souhaite accorder les droits de selection,mise a jour, insertion,
deletion à un utilisateur sur toutes les tables utilisateur d'une base de
données, en faisant un script.
J'ai essayé de récupérer le nom des tables concernées dans la table
sysobjects de la base en question, puis par le biais d'un curseur,
d'accorder les autorisation sur chaque tables.
Ca donne ça

--La requete select permert de récupérer les tables utilisateur uniquement
For (select name from dbo.sysobjects where status >0 and xtype in ('u'))
Open CurseurDroits
Fetch Next From CurseurDroits
Into @Table

--Boucler sur les elements
While @@Fetch_Status = 0
Begin
Grant select,update,delete,insert
on @Table
to Utilisateur

--lire l'element suivant
Fetch Next From CurseurDroits
Into @Table
End

Close CurseurDroits
DeAllocate CurseurDroits

GO

mais ça ne marche pas du tout...
Quelqu'un connaitrait il un moyen plus efficace de parvenir au résultat
escompté?
Merci par avance de votre aide.





--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************