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 :

Besoin d'aide sur une procédure stockée


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut Besoin d'aide sur une procédure stockée
    Bonjour,
    Je travaille sous SQL Server 2000.

    J'ai 3 tables :
    - une table des utilisateurs avec un IdUser
    - une table des systèmes avec un IdSystem
    - une table des droits avec les champs {IdUser ; IdSystem ; Rights }

    Actuellement, quand un utilisateur a des droits sur un système, il y a une ligne correspondante dans la table des droits (Le champ Rights a la valeur "Read" ou "Write").
    Quand il n'a pas de droit, il n'y a pas de ligne.

    Je voudrais réaliser une procédure stockée qui complète la table des droits de façon à ce qu'il y ait une ligne avec la valeur "NoRight" pour toutes les combinaisons User/System sans droit.

    Pouvez-vous m'aider ?
    D'avance merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    insert dbo.t_droits
    select SR.id_u, SR.id_s, 'NoRight' Rights
    from 
    (
    	select SYS.id_s, UTI.id_u
    	from dbo.T_systèmes SYS, dbo.T_utilisateurs UTI
    	except
    	select id_s, id_u
    	from t_droits
    ) SR
    un petit produit cartésien de la mort...
    J'espère que que tu n'as pas trop d'utilisateurs et de systèmes parce que ta table droits va devenir très grosse pour pas grand chose.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Merci beaucoup.
    Je vais l'essayer.

    C'est une application qui devrait avoir, disons, 50 utilisateurs par 800 systèmes en voyant large.
    Soit 40000 lignes.

    çà fait beaucoup à ton avis ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Ideal_Du_Gazeau Voir le message
    Soit 40000 lignes.
    ça fait beaucoup à ton avis ?
    Oracle supportera ça sans rechigner mais ça fait beaucoup de lignes qui ne stockent rien en définitif.
    Ce problème de non droit devrait plutôt être gérer au niveau de l'applicatif :
    si la ligne n'existe pas, l'utilisateur n'a pas le droit, point bar !

  5. #5
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    C'est une option que j'avais envisagée, mais que j'aurais préféré éviter pour simplifier le code.
    Mais je pense que tu as raison.
    Je vais y réfléchir plus sérieusement.

    En tout cas merci beaucoup pour ton aide.
    Si tu avais été une fille, je t'aurais embrassé.

    Salutations.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besion d'aide sur une procédure stockée
    Par bpdelavega dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/09/2013, 13h34
  2. Aide sur une Procédure stockée
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/12/2006, 00h48
  3. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 10h29
  4. Réponses: 4
    Dernier message: 14/06/2004, 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