|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : février 2011 Messages : 38 ![]() |
Bonjour,
J'aimerais savoir s'il existe un select permettant de retrouver le résultat de la création d'utilisateur avec droits suivants : Code :
Par exemple, j'ai 2 utilisateurs qui semble avoir la même table temporaire physique...mais qui ont 2 tablespace par défaut? est ce rationnel ? Bref je voudrais pour un utilisateur1 trouver sa tablespace par défaut et son fichier temporaire |
||
|
|
00
|
|
|
#2 | ||||
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Code :
Code sql :
Réponds à la question des 2 Tablespaces (temporaire et permanent) utilisés par défaut par l'utilisateur. Une table temporaire est propre à un schéma (et donc à un utilisateur). Ce qui signifie que même si deux utilisateurs U1 et U2 utilisent chacun une table temporaire T, en fait U1 utilisae U1.T et U2 utilise U2.T. |
||||
|
00
|
|
|
#3 | ||||||
|
Invité régulier
![]() Inscription : février 2011 Messages : 38 ![]() |
Bonjour,
donc si le résultat de la requête est : Code :
solution1 Code :
ou solution2 Code :
|
||||||
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
La solution 1 en elevant les '&&' devant les 'WITH'
Code sql :
et les variable 1, 2, 3, 4, 5 doivent être des paramètres de ton script |
||
|
00
|
|
|
#5 | |
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
Je crois qu'il faut clarifier pas mal de choses avant d'aller plus loin.
Sans vouloir être désobligeant, j'ai l'impression que vous avez fait un copier coller de quelque chose que vous ne comprenez pas. 1) Déjà, quelle est votre version d'Oracle ? Citation:
3) Ensuite, pourquoi intervenez-vous sur les tables telles que SYS.OBJ$ ? En temps normal, on n'a pas besoin d'accéder à ces tables. 4) Ces droits WITH GRANT OPTION ou WITH ADMIN OPTION sont-ils bien nécessaires ? 5) Quel est réellement et précisément votre objectif ? Dans le titre, vous parlez de "droits", dans le corps de votre question, il ne s'agit apparemment que de tablespace principal ou temporaire... Difficile de s'y retrouver !
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
10
|
|
|
#6 | |||
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
Citation:
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|||
|
|
00
|
|
|
#7 | |
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
Citation:
Sous Oracle, les tables temporaires sont obligatoirement de type GLOBAL, c'est à dire qu'elles sont accessibles par tous les utilisateurs sans qu'il soit nécessaire de donner des droits particuliers. (Par contre les données de cette table temporaire sont privées : chaque session ne peut voir que les données qu'elle a elle-même introduites). Si SCOTT crée une table temporaire TABTEMP, HR peut immédiatement accéder à cette table en la désignant par SCOTT.TABTEMP, puisque SCOTT en est le propriétaire.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
00
|
|
|
#8 | |
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Citation:
L'utilisateur u1 peut créer la table temporaire t Code sql :
CREATE global TEMPORARY TABLE t AS SELECT * FROM dba_objects WHERE 1=2; L'utilisateur u2 peut lui aussi créer une table temporaire t Code sql :
CREATE global TEMPORARY TABLE t AS SELECT * FROM dba_segments WHERE 1=2; Si u1 utilise la table temporaire t sans préciser de schéma, il utilisera U1.T. De même si u2 utilise la table temporaire t sans préciser de schéma, il utilisera U2.T. Bon ceci dit ça ne semble en effet pas être le problème ici. |
|
|
10
|
|
|
#9 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 38 ![]() |
Bonjour,
En fait je récupère une mécanique d'import/export (qui n'est pas moi) pour mettre à jour une base de test (j'ai vu des tutoriaux qui m'ont l'air plus simple comme celui ci => http://orafrance.developpez.com/dbahelp/#L2.1). Mais j'hésite à sortir des sentiers fléchés. D'autant plus que la procédure d'import/export permet de diminuer la taille physique des DBF sur un serveur saturé (si autre méthode fiable et sans risque pour diminuer la taille je suis preneur Donc pour continuer la création de 2 utilisateurs avec la requête citée en est le point final. Les allégations de la procédures d'import cite de mettre en valeur : 1=>TOTO 2=>TOTO 3=>TOTO 4=>WITH GRANT OPTION Seulement ça m'a étonné car qd je faisais la requête : Je ne voyais pas de table temporaire TOTO ni non plus physiquement, alors j'ai donc après qq recherche préférer soumettre mes doutes à vos conseils avisés. Mon objectif est juste de comparer l'existant qui a été créé avec cette requête pour mettre à jour de façon précise la procédure et la base de test. Pour répondre à Pomalaix 1) Déjà, quelle est votre version d'Oracle ? => 9.2.0.4 Standard 2) Je suppose que c'est de tablespace temporaire que vous parlez ? =>Oui 3) Ensuite, pourquoi intervenez-vous sur les tables telles que SYS.OBJ$ ? En temps normal, on n'a pas besoin d'accéder à ces tables. => C'est dans la procédure 4) Ces droits WITH GRANT OPTION ou WITH ADMIN OPTION sont-ils bien nécessaires ? => C'est dans la procédure 5) Quel est réellement et précisément votre objectif ? Dans le titre, vous parlez de "droits", dans le corps de votre question, il ne s'agit apparemment que de tablespace principal ou temporaire... Difficile de s'y retrouver ! => Voir plus haut Si j'ai bien compris Ojo77 je dois mettre TEMP dans ma requête car c'est ce que je vois dans le résultat de la requête sur dba_users. Je m'excuse pour le vocabulaire je suis plus à l'aise sur d'autre BDD. Merci beaucoup pour vos réponses à tous et si vous pouviez m'éclairer sur les limites de la méthode http://orafrance.developpez.com/dbahelp/#L2.1 et s'il existe une fonction de maintenance sans risque comme dans pervasive ou sql server pour réduire la taille des fichiers de données et les remettre au propre |
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() Administrateur de base de données Inscription : novembre 2007 Messages : 341 ![]() |
bonjour,
si ce sont les droits sur les objets qui t'intéressent c'est la table dba_tab_privs qu'il faut consulter, si tu veux savoir qui possède quoi, c'est la table dba_objects, les droits d'écriture dans un tablespace, c'est la table dba_ts_quotas t les tablespaces par défaut... c'est bien dans dba_users. maintenant, je trouve que les with grant options sont bien inutiles, que l'accès aux vues des sys sont étranges, et qu'une réponse "c'est dans la procédure" est bien insatisfaisante au vu des implications de certains choix de construction de schémas par rapports aux exigences de sécurité |
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 38 ![]() |
Merci pour vos réponses et vos précisions.
Cela m'a aidé, par ailleurs je suis allé dans l'interface oracle de gestion qui m'a permis de confirmer tout ça. En effet toutes les infos sont écrites graphiquement dans l'arborescence définissant les propriétés de l'utilisateur. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com