IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Trigger pour mettre des droits sur des procedures et des vues


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Trigger pour mettre des droits sur des procedures et des vues
    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 :

    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
    Je pensais faire un trigger comme ceci:

    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.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 842
    Points : 52 940
    Points
    52 940
    Billets dans le blog
    5
    Par défaut
    Il serait beaucoup plus intelligent de mettre toutes vos procédures dans un schema SQL et de donner les privilège d'exécution sur le schéma a vos utilisateur. Ainsi, si vous rajoutez une procédure dans ce schéma, vos utilisateurs pourront directement l'exécuter en vertu du principe des héritages de privilèges sur les conteneurs logiques que sont les schémas.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre réponse.
    Je ne connais pas précisément la notion de schéma dans SQLServer.
    Je m'en vais rechercher des infos sur ce sujet immédiatement.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 842
    Points : 52 940
    Points
    52 940
    Billets dans le blog
    5
    Par défaut
    La notion de schéma SQL fait partie intégrante de la norme SQL. Un schéma est un conteneur logique au même sens qu'une library C ou un espace de nom C#.
    Il existe toujours un schéma par défaut dans la base (dans SQL Server c'est dbo) et aucun objet ne peut exister sans être dans un schéma de la base de données.

    Pour de plus amples informations, lisez mon livre sur SQL !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [PowerShell] Besoin d'aide pour listage des droits sur répertoire
    Par pastis 51 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 25/09/2013, 10h28
  2. Logiciel automat pour mettre mes cv sur des sites d'annonces
    Par Maryline-qc dans le forum Windows
    Réponses: 1
    Dernier message: 22/01/2013, 20h38
  3. Mettre en place des droits sur une vue différents de ceux de la table-source ?
    Par Antoun dans le forum Administration et Installation
    Réponses: 14
    Dernier message: 15/02/2010, 14h13
  4. [MySQL] Perte des droits sur une table ??
    Par Mystic eyes dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 05/07/2006, 16h40
  5. Réponses: 10
    Dernier message: 18/05/2006, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo