Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/03/2010, à 17:55

indo4ever

[résolu]Bash avec oracle

Bonjour,

je cherche a faire un bash(sous linux). Je veux juste que ce script puisse ajouter un utilisateur dans Oracle. Donc je veux savoir comment je pourrais faire pour que mon script puisse agir sur ma base de données.

Merci d'avance pour vos réponse...

Dernière modification par indo4ever (Le 28/03/2010, à 16:49)


Que la Linuxforce soit avec toi!

Hors ligne

#2 Le 24/03/2010, à 17:56

sputnick

Re : [résolu]Bash avec oracle

man useradd
man adduser

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 24/03/2010, à 17:58

indo4ever

Re : [résolu]Bash avec oracle

useradd sert a ajouter des utilisateur dans oracle? Je pensais que cela avais un rapport avec les utilisateur de linux????


Que la Linuxforce soit avec toi!

Hors ligne

#4 Le 24/03/2010, à 18:02

yohann

Re : [résolu]Bash avec oracle

nan mais mdr a part dans le titre il n''y a le mot oracle nul part dans ton message, sois clair dans ta demande si tu veux des réponses claires


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#5 Le 24/03/2010, à 18:06

indo4ever

Re : [résolu]Bash avec oracle

yohann a écrit :

nan mais mdr a part dans le titre il n''y a le mot oracle nul part dans ton message, sois clair dans ta demande si tu veux des réponses claires

Voila j'ai mis à jour ma demande....


Que la Linuxforce soit avec toi!

Hors ligne

#6 Le 24/03/2010, à 18:11

yohann

Re : [résolu]Bash avec oracle

je ne connais pas oracle, mais la manière usuelle de faire sous unix est de lancer le client oracle et de rediriger la commande sql par un echo vers ce client:

exemple:

echo "insert into user (name, pass ) values ('yohann', md5('mdp')" > oracle -u user -pmdp

en gros on redirige la sortie du echo vers le programe oracle lancé avec les options qui permete de ce connecter, et dans le echo on place la commande qui permet de créer l'utilisateur dans oracle


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#7 Le 24/03/2010, à 18:19

indo4ever

Re : [résolu]Bash avec oracle

merci pour ton aide!

Je comprends pas la fin de la ligne de commande
oracle=oracle
-u la je met le nom de quel utilisateur?

et c quoi pmdp?


Que la Linuxforce soit avec toi!

Hors ligne

#8 Le 24/03/2010, à 18:33

yohann

Re : [résolu]Bash avec oracle

normal c'est une pseudo ligne de commande!!
je pars du principe que tu sais comment tu te connecte à oracle d'habitude (car je ne sais pas comment on fait).
donc toute la partie à droite du > c'est la commande que tu lance pour te connecter à oracle


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#9 Le 25/03/2010, à 10:13

Totor

Re : [résolu]Bash avec oracle

Bonjour,

si mes souvenirs sont bons :

export ORACLE_SID=<le SID de ta base>
sqlplus /nolog <<EOF
connect / as sysdba
CREATE USER '<USER>' IDENTIFIED BY '<PASSWORD>';
GRANT CONNECT TO '<USER>';
GRANT ...
EOF

Rajoutes tous les droits/rôles que tu souhaites à ton user en complétant GRANT ...

Dernière modification par Totor (Le 25/03/2010, à 13:42)


-- Lucid Lynx --

Hors ligne

#10 Le 25/03/2010, à 20:45

indo4ever

Re : [résolu]Bash avec oracle

Merci pour ta réponse mais c'est quoi EOF?


Pis toute cette partie je le comprends pas sad:

sqlplus /nolog <<EOF
connect / as sysdba

Dernière modification par indo4ever (Le 25/03/2010, à 20:55)


Que la Linuxforce soit avec toi!

Hors ligne

#11 Le 25/03/2010, à 21:40

Totor

Re : [résolu]Bash avec oracle

ça permet de se connecter à Oracle en "sysdba" et de créer le USER oracle avec l'ordre CREATE.


-- Lucid Lynx --

Hors ligne

#12 Le 25/03/2010, à 21:53

indo4ever

Re : [résolu]Bash avec oracle

script.sh: line 10: warning: here-document at line 5 delimited by end-of-file (wanted `EOF')
script.sh: line 5: sqlplus : commande introuvable


voila ce qu'il me dit?
tu sais pourquoi?


Que la Linuxforce soit avec toi!

Hors ligne

#13 Le 25/03/2010, à 22:10

Totor

Re : [résolu]Bash avec oracle

indo4ever a écrit :

script.sh: line 10: warning: here-document at line 5 delimited by end-of-file (wanted `EOF')

le dernier EOF doit se trouver en début de ligne

indo4ever a écrit :

script.sh: line 5: sqlplus : commande introuvable


voila ce qu'il me dit?
tu sais pourquoi?

il faut que ton ORACLE_HOME/bin (dossier des binaires oracle) soit dans ton PATH


-- Lucid Lynx --

Hors ligne

#14 Le 25/03/2010, à 22:24

indo4ever

Re : [résolu]Bash avec oracle

J'ai remi le EOF a la fin, je l'avais maintenant il me dit cela:

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Mar 25 22:22:46 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> ERROR:
ORA-01031: insufficient privileges


SQL> SP2-0640: Not connected


J comprends pas, ou est ce que je dois mettre mon mot de passe? et si je ne veux pas executer ma commande via sysdba mais un autre user c possible?


Que la Linuxforce soit avec toi!

Hors ligne

#15 Le 26/03/2010, à 10:04

Totor

Re : [résolu]Bash avec oracle

Avec la procédure que je t'ai indiqué, pas besoin de mettre de mot de passe.
Pour créer un user oracle, il faut avoir des privilèges, d'où l'utilisateur sys.
Il existe d'autres utilisateurs ayant les privilèges nécessaires mais il faut connaitre leur mot de passe (ex. system)


-- Lucid Lynx --

Hors ligne

#16 Le 26/03/2010, à 13:31

indo4ever

Re : [résolu]Bash avec oracle

Ok d'accord mais comment on met le mot de passe?

genre c'est system/<mot de passe>?

Je comprends toujours pas ce qu'est ce EOF!

Merci pour ta patience. big_smile


Que la Linuxforce soit avec toi!

Hors ligne

#17 Le 26/03/2010, à 13:43

Totor

Re : [résolu]Bash avec oracle

man bash a écrit :

Document en ligne

Avec ce type de redirection, le shell va lire son entrée standard jusqu'à ce qu'il atteigne une ligne contenant uniquement le mot prévu (sans espaces à la suite), nommée étiquette. Une fois cette étiquette atteinte, il exécutera la commande demandée en lui fournissant en entrée le texte lu avant l'étiquette, que l'on appelle document en ligne.

Le format des documents en ligne est le suivant :

<<[-]mot
        document en ligne
étiquette

Il n'y a ni remplacement de paramètre, ni substitution de commande, ni développement de chemin d'accès, ni évaluation arithmétique sur le mot. Si l'un des caractères du mot est protégé, l' étiquette est obtenue après suppression des protections dans le mot, et les lignes du document ne sont pas développées. Sinon, toutes les lignes du document sont soumises au remplacement des paramètres, à la substitution de commandes, et à l'évaluation arithmétique. Dans ce dernier cas, les couples \<retour-chariot> sont ignorés, et \ doit être utilisé pour protéger les caractères \, $, et `.

Si l'opérateur de redirection est <<-, alors les tabulations en tête de chaque ligne sont supprimées, y compris dans la ligne contenant étiquette. Ceci permet d'indenter de manière naturelle les documents en ligne au sein des scripts.


-- Lucid Lynx --

Hors ligne

#18 Le 26/03/2010, à 18:48

indo4ever

Re : [résolu]Bash avec oracle

cela m'aide pas sad


Que la Linuxforce soit avec toi!

Hors ligne

#19 Le 26/03/2010, à 19:46

Link31

Re : [résolu]Bash avec oracle

indo4ever a écrit :

Ok d'accord mais comment on met le mot de passe?
genre c'est system/<mot de passe>?

Essaie ça :

sqlplus / as sysdba <<EOF
CREATE USER '<USER>' IDENTIFIED BY '<PASSWORD>';
GRANT CONNECT TO '<USER>';
GRANT ...
EOF

Et si tu veux te connecter sous une autre identité, par exemple system, tu dois mettre le mot de passe :

sqlplus system/lemotdepasse <<EOF
...

Dernière modification par Link31 (Le 26/03/2010, à 19:48)

Hors ligne

#20 Le 26/03/2010, à 20:00

indo4ever

Re : [résolu]Bash avec oracle

merci pour ton aide:

Maintenant j'ai cela

SQL> SQL> SQL> CREATE USER 'test' IDENTIFIED BY 'test'
            *
ERROR at line 1:
ORA-01935: missing user or role name

pourquoi? merci d'avance


Que la Linuxforce soit avec toi!

Hors ligne

#21 Le 26/03/2010, à 20:38

Link31

Re : [résolu]Bash avec oracle

Qu'est ce que tu as écrit exactement (sans nous donner le mdp évidemment) ?
Tu n'as pas gardé le "GRANT ..." tel quel j'espère ?

Hors ligne

#22 Le 26/03/2010, à 21:21

Totor

Re : [résolu]Bash avec oracle

Ceci devrait suffir :

sqlplus system/<passwd>@<SID>  <<EOF
CREATE USER test IDENIFIED BY test;
GRANT CONNECT, RESSOURCE TO test;
EOF

N'oublie pas de changer le password et le SID

sinon :

sqlplus 'sys/<passwd>@<SID> as sysdba' <<EOF
CREATE USER test IDENIFIED BY test;
GRANT CONNECT, RESSOURCE TO test;
EOF

je ne te donne pas les mots de passe par défaut. s'ils sont probablement dispo sur le net...

EDIT : et quand t'as une erreur oracle, (du style ORA-01935)... regarde la page http://<ERREUR>.ora-code.com
exemple : http://ora-01935.ora-code.com/

Dernière modification par Totor (Le 26/03/2010, à 21:26)


-- Lucid Lynx --

Hors ligne

#23 Le 26/03/2010, à 21:27

indo4ever

Re : [résolu]Bash avec oracle

export ORACLE_SID=XE
sqlplus system/<mdp> <<EOF


CREATE USER 'test' IDENTIFIED BY 'test';
GRANT CONNECT, RESSOURCE TO test;


EOF

Voila ce que j'ai mis...Pourtant il se connecte...


Que la Linuxforce soit avec toi!

Hors ligne

#24 Le 27/03/2010, à 21:50

Totor

Re : [résolu]Bash avec oracle

Si tu positionnes la variable ORACLE_SID, y'a effectivement pas besoin de l'indiquer dans la commande sqlplus


-- Lucid Lynx --

Hors ligne

#25 Le 28/03/2010, à 16:49

indo4ever

Re : [résolu]Bash avec oracle

j'ai trouvé en faite il faut juste enlevé les quotte. Merci pour ton aide


Que la Linuxforce soit avec toi!

Hors ligne