Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/04/2011, 19h17   #1
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 96
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 96
Points : 17
Points : 17
Par défaut Grant ne marche pas

Salut
j'ai crée un utilisateur avec System une table tab1 , aprés j'ai crée un utilisateur Toto ;

Code :
1
2
3
4
CREATE user Toto IDENTIFIED BY toto ;
GRANT resource , connect TO Toto;
GRANT SELECT ON tab1 TO Toto ;
commit;
j'ai ouvert une autre fenêtre dont je me suis conecté avec Toto
j'ai mis select * from tab1,et j'ai eu !

Citation:
ERREUR à la ligne 1 :ORA-00942: Table ou vue inexistante
qu'est ce que j'ai loupé ??
zoro007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 19h45   #2
Membre éprouvé
 
Femme
Administrateur de base de données
Inscription : novembre 2007
Messages : 341
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

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

Informations forums :
Inscription : novembre 2007
Messages : 341
Points : 478
Points : 478
il manque le synonyme ou alors il faut préfixer avec le nom du propriétaire de la table, ou bien dernière explication, la table n'existe pas ou plus
Heaven93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 20h41   #3
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 96
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 96
Points : 17
Points : 17
la table existe ! y'a t-il pas une solution
zoro007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 20h46   #4
Membre éprouvé
 
Femme
Administrateur de base de données
Inscription : novembre 2007
Messages : 341
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

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

Informations forums :
Inscription : novembre 2007
Messages : 341
Points : 478
Points : 478
on dirait que je n'ai pas été assez claire

Code :
CREATE synonym toto.tab1 FOR system.tab1;
ou un truc dans ce genre

ou alors tu fais
Code :
SELECT * FROM system.tab1;
Heaven93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 20h49   #5
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Citation:
Envoyé par Heaven93 Voir le message
ou alors il faut préfixer avec le nom du propriétaire de la table,
J'espère que la table a bien été créée dans le schema dont on ne connait pas le nom et non dans system.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 21h07   #6
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 96
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 96
Points : 17
Points : 17
Merci j'ai utilisé
Code :
SELECT * FROM system.tab1;
et ça marche maintenant !!
zoro007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 22h00   #7
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
C'est une mauvaise idée de créer des objets dans les users de base d'oracle, même si dans system c'est probablement moins pire que dans sys, ça reste une mauvaise idée.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 08/04/2011, 09h23   #8
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
je dirais même plus : une TRES mauvaise idée !
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 10h41   #9
Invité régulier
 
Inscription : février 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 41
Points : 8
Points : 8
En parlant de Grant, vous savez pourquoi je n'arrive pas à faire un simple

Code sql :
GRANT execute ON maprocédurestockée TO public;

A la fin de ma procédure stockée

Alors que j'arrive à le lancer dans une nouvelle fenêtre ...
Il faut des droits particuliers pour faire un to public dans une procédure ? Et si oui lesquels
NarbOni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 13h59   #10
Membre confirmé
 
Avatar de Ahmed AANGOUR
 
Homme Ahmed AANGOUR
DBA Etudes Oracle
Inscription : janvier 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Homme Ahmed AANGOUR
Âge : 33
Localisation : France

Informations professionnelles :
Activité : DBA Etudes Oracle

Informations forums :
Inscription : janvier 2010
Messages : 123
Points : 217
Points : 217
les commandes DDL dans du PL/SQL doivent se faire via des EXECUTE IMMEDIATE:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
SQL> begin
  2  GRANT execute ON my_proc TO public;
  3  end;
  4  /
GRANT execute ON my_proc TO public;
*
ERROR at line 2:
ORA-06550: line 2, COLUMN 1:
PLS-00103: Encountered the symbol "GRANT" when expecting one of the following:
( begin case declare exit FOR goto IF loop mod NULL pragma
raise RETURN SELECT UPDATE while WITH <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current DELETE fetch LOCK INSERT open rollback
savepoint SET sql execute commit forall merge pipe purge
 
 
Elapsed: 00:00:00.03
SQL> begin
  2  execute immediate 'grant execute on my_proc to public';
  3  end;
  4  /
 
PL/SQL procedure successfully completed.
__________________
Mon blog Oracle: http://ahmedaangour.blogspot.com/
Ahmed AANGOUR est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/04/2011, 15h52   #11
Invité régulier
 
Inscription : février 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 41
Points : 8
Points : 8
Ok super, merci de ta réponse !
NarbOni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 22h24   #12
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
La vrai question étant pourquoi vouloir faire un GRANT à la fin de la procédure stockée ?

Un GRANT se donne une fois pour toute (surtout si c'est pour PUBLIC), s'il est codé dans la procédure il sera exécuté à chaque appel de la procédure... à part plomber les perfs je ne vois pas quel sera l'intérêt.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h19.


 
 
 
 
Partenaires

Hébergement Web