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 Oracle Discussion :

[DBA] Calcul des Statistiques sans privilèges DBA


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 59
    Points
    59
    Par défaut [DBA] Calcul des Statistiques sans privilèges DBA
    Bonjour,

    Est-il possible d'autoriser un autre user que SYSTEM (qui ne disposerait pas des droits DBA) à utiliser les packages DBMS_UTILITY et DBMS_STATS ?

    à priori un GRANT ne suffit pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ORA-20000: Insufficient privileges to analyze an object in Schema
    ORA-06512: à "SYS.DBMS_STATS", ligne 9858
    ORA-06512: à "SYS.DBMS_STATS", ligne 10023
    ORA-06512: à "SYS.DBMS_STATS", ligne 10077
    ORA-06512: à "SYS.DBMS_STATS", ligne 10054
    ORA-06512: à ligne 2
    En fait nous générons des chargements massifs dans le cadre de l'alim d'un Datawarehouse et nous aurions besoin de lancer le calcul des stats a des moments particuliers, lorsque certaines tables sont alimentées.

    Merci de vos infos.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Non, il faut les droits DBA... mais pourquoi donc ne veut tu pas le faire avec SYSTEM ?

  3. #3
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    je suppose que donner explicitement les droits d'exécution sur le package DBMS_STATS depuis SYS devrait suffire...

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    La commande ANALYZE devrait encore pouvoir dépanner quelques temps.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 59
    Points
    59
    Par défaut
    C'est assez compliqué. Je ne suis pas DBA sur cette base de prod et nous n'avons pas les mots de passe des schemas, ni le compte DBA. Nous avons juste un compte avec des droits CONNECT.

    Le probleme s'était deja posé avec les TRUNCATE qui pour nous étaient absolument nécessaire et que nos privilèges ne nous permettez pas. Le DBA en titre, nous a pondu une procédure PL/SQL pour le réaliser à partir de notre user.

    Je me demandé si une bidouille de la sorte était possible pour notre schéma pour le calcul des stats ...?

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    mais c'est un psychopathe votre DBA

    Je pense que sans les droits DBA ce n'est pas possible puisque l'analyse modifie les données des tables SYSTEM

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 59
    Points
    59
    Par défaut
    mais c'est un psychopathe votre DBA
    Je suis d'accord mais ce n'est pas notre base et puis c'est en prod.

    Si c'est cela, je vais devoir supprimer toutes les stats et ne plus les utiliser puisqu'elles sont calculées le matin lorsque mes tables d'alim sont vides.

    Elles sont donc fausses et me génèrent des explain plan foireux ....

    et pour DBMS_UTILITY, c'est la même punition ?


    Sinon merci pour votre aide

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    De toute façon c'est le boulot du DBA ça hein... si il ne veut pas vous filer les billes la moindre des choses c'est de le faire sinon j'vois pas bien à quoi il sert

  9. #9
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Points : 8 079
    Points
    8 079
    Par défaut
    Moi je ne vois pas de raison théorique pour que DBMS_STATS ne soit utilisable qu'avec des droits DBA.

    Je viens de faire un petit test sous le compte SCOTT, ça marche très bien.
    Je constate au passage que DBMS_STAT est exécutable par défaut par PUBLIC.

    De plus, l'un des intérêts d'une procédure, et à plus forte raison des paquetages, c'est de permettre d'accéder de manière contrôlée à un objet (le dictionnaire de données en l'occurrence, où sont stockées les stats), sans avoir de droits directs sur cet objet.
    Dans ce sens là, c'est le même mécanisme d'une vue. On peut accéder aux données d'une table via une vue, sans avoir de droits directs sur la table.

    Donc je dirais même mieux, DBMS_STATS est structuré pour être utilisable par quiconque.

  10. #10
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Si tu regardes les spécifs du package tu vois que l'exception est traitée :

    ORA-20000: Insufficient privileges for some object in this schema

    Ce qui parait évident effectivement, puisqu'il fait des count, sum et autres joyeusetés du genre sur les tables du schéma à analyser

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 59
    Points
    59
    Par défaut
    Dans ce cas, pourquoi ais-je l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    begin 
     sys.dbms_stats.gather_schema_stats('ODS', 20, cascade=>true);
    end;
    ORA-20000: Insufficient privileges to analyze an object in Schema
    ORA-06512: à "SYS.DBMS_STATS", ligne 9635
    ORA-06512: à "SYS.DBMS_STATS", ligne 9800
    ORA-06512: à "SYS.DBMS_STATS", ligne 9854
    ORA-06512: à "SYS.DBMS_STATS", ligne 9831
    ORA-06512: à ligne 2
    pourtant le user qui lance cette procédure a des GRANTS SELECT, UPDATE, DELETE et INSERT sur tous les objets du schéma ODS ?

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Tu dois avoir les droits sur analyze :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grant analyze any to ODS;
    va falloir être gentil avec le DBA là

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 59
    Points
    59
    Par défaut
    Super, j'ai testé sur la base de dev, ça fonctionne nickel.
    Je vais faire un gentil mail à notre DBA.


    Merci encore !

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    super

    Tu peux donc mettre le sujet en résolu

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 59
    Points
    59
    Par défaut
    Tu peux donc mettre le sujet en résolu
    Ne t'inquiète donc pas, j'allais le faire !
    J'attendais la fin de la journée si qlq'un voulait rajouter qlqchose

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

Discussions similaires

  1. Calculer des statistiques à partir d’un fichier texte.
    Par louay02 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/04/2011, 16h48
  2. Calcul des statistiques dans un traitement ETL
    Par Prjprj dans le forum DB2
    Réponses: 1
    Dernier message: 30/06/2009, 22h12
  3. [MySQL] Calcul des statistiques
    Par cirvent dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 23/02/2009, 00h21
  4. Calcul des statistiques
    Par enDev dans le forum Administration
    Réponses: 4
    Dernier message: 21/07/2008, 12h43
  5. calcul des statistiques par dbms_stat
    Par learn dans le forum Oracle
    Réponses: 5
    Dernier message: 27/02/2006, 22h16

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