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

Administration SQL Server Discussion :

coherence administration des droits entre objets base de données


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Par défaut coherence administration des droits entre objets base de données
    Bonjour,

    Je rencontre un pbm de cohérence d'administration des droits sur les objets sql server 2000.

    J'ai une table test & un utilisateur user1, à ce user1 je lui interdis (DENY UPDATE ON test TO user1)d'effectuer des MAJ sur la table test

    en conséquent, lorsque j'execute un update sur la table test via le user user1, j'obtiens le message suivant :

    "Autorisation UPDATE refusée sur l'objet test, base de données 'BdADM', propriétaire 'dbo'."

    Pas d'incohérence, la MAJ est refusée ..

    En revanche, lorsque j'inscris cette instruction de MAJ au sein d'une procédure stockée SP_test & que j'exécute cette SP_test via le user1, l'instruction de MAJ est acceptée, or selon moi elle devrait être refusée à l'instar du premier cas (MAJ de la table test hors procedure stockée)

    Merci pour vos lumières..

    Cordialement...

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Vous êtes dans un cas de "ownership chaining".

    En supposant que vous êtes le propriétaire des 2 objets (table et procédure stockée) et que vous avez donner le droit d'exécution sur la procédure stockée alors ce comportement est tout à fait normal. En effet, vous avez le déroulement suivant :

    user1 --> exécution procédure --> comparaison des propriétaires entre l'objet appelant et l'objet appelé --> Si les propriétaires sont les mêmes alors les permissions sur l'objet appelé ne sont pas vérifiés

    Donc dans votre cas la permission DENY ne sera pas vérifiée. Ce comportement est déroutant au début mais logique. Vous interdisez une mise à jour directe sur votre table pour un utilisateur donné mais cela ne veut pas dire qu'il ne pourra pas le faire à l'aide d'une procédure stockée dans laquelle vous allez contrôler le processus.

    ++

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Et oui, une procédure s'apparente à la programmation objet dans lequel l'intérieur est une boite noire...

    C'est d'ailleurs tout l'intéret !

    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/ * * * * *

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Bonjour,

    Vous êtes dans un cas de "ownership chaining".

    En supposant que vous êtes le propriétaire des 2 objets (table et procédure stockée) et que vous avez donner le droit d'exécution sur la procédure stockée alors ce comportement est tout à fait normal. En effet, vous avez le déroulement suivant :

    user1 --> exécution procédure --> comparaison des propriétaires entre l'objet appelant et l'objet appelé --> Si les propriétaires sont les mêmes alors les permissions sur l'objet appelé ne sont pas vérifiés

    Donc dans votre cas la permission DENY ne sera pas vérifiée. Ce comportement est déroutant au début mais logique. Vous interdisez une mise à jour directe sur votre table pour un utilisateur donné mais cela ne veut pas dire qu'il ne pourra pas le faire à l'aide d'une procédure stockée dans laquelle vous allez contrôler le processus.

    ++
    Merci pour votre réponse particulièrement instructif..

    En résumé pour une stratégie maitrisé des droits d'accès sur les objets sql server, il convient donc d'assigner un propriétaire différent par type d'objet sql server (table, SP,udf..etc...)...?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    non... ce n'est pas le but, car vous allez vous retrouver avec une multitude d'utilisateurs qui ne pourrons plus être supprimés....

    Pour comprendre le modèle de sécurité, et surtout comment s'en servir, il vous faudrait une solide formation...
    Je pense que la façon dont vous l'avez conçue n'est pas du tout la bonne.
    Néanmoins vous pouvez peut être vous en sortir en ajoutant dans la procédure un EXECUTE AS....

    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. Réponses: 2
    Dernier message: 02/03/2012, 09h45
  2. Pattern pour des contraintes entre Objet
    Par fabgamer dans le forum Design Patterns
    Réponses: 7
    Dernier message: 24/09/2010, 12h06
  3. Réponses: 8
    Dernier message: 29/06/2007, 10h24
  4. mise à jour massive des tables entre 2 bases oracle
    Par rihojaniero dans le forum Oracle
    Réponses: 1
    Dernier message: 13/10/2006, 08h22
  5. Réponses: 7
    Dernier message: 26/01/2006, 12h19

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