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 05/06/2008, 09h59   #1
Invité de passage
 
Inscription : juin 2008
Messages : 1
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1
Points : 0
Points : 0
Par défaut Script shell pour connaitre le nombre de connection sur un serveur oracle

Salut,
je suis en stage architecture reseau, je ne connais pas grand chose en programmation. Ma question est la suivante:
Comment connaître le nombre de connection sur un serveur oracle.
En fait, je dois écrire un scripte shell qui me permettrai de remonter ces informations sous forme de graphique en sur se servant de cacti:
cacti est un logiciel de supervion.
merci.
halifa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 14h54   #2
Membre chevronné
 
Avatar de philcero
 
Inscription : septembre 2007
Messages : 519
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 519
Points : 649
Points : 649
Ca sert à rien de faire une requête Oracle, cherche juste avec un 'netstat -a' tous les éléments du type :
Code :
<mon ip>.<port du listener> <autre ip>.<un port> x x x x ESTABLISHED
En gros, sur une de mes machines :
Code :
1
2
3
$ netstat -na | grep 1521 | grep -i established
10.200.81.86.1521    10.200.81.78.44684   66608      0 66608      0 ESTABLISHED
...etc...
Avec un 'wc' :
Code :
1
2
$ netstat -na | grep 1521 | grep -i established | wc -l
      83
__________________
Pas de réponse aux messages privés. Faites un post pour vos problèmes, que tout le monde en profite...
philcero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 19h53   #3
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
La partie SQL de la réponse est en partie dans la FAQ.

Citation:
Envoyé par philcero
avec un 'netstat -a' tous les éléments du type :
S'il n'y a que des connexions distantes, oui. Mais il peut y avoir des connexions locales qui n'utilisent pas Oracle Net mais le protocole IPC.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 09h07   #4
Membre chevronné
 
Avatar de philcero
 
Inscription : septembre 2007
Messages : 519
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 519
Points : 649
Points : 649
Code :
S'il n'y a que des connexions distantes, oui. Mais il peut y avoir des connexions locales qui n'utilisent pas Oracle Net mais le protocole IPC.
Il parle de surveillance, donc j'en déduis qu'il s'agit de connexions clientes sur un réseau classique...
__________________
Pas de réponse aux messages privés. Faites un post pour vos problèmes, que tout le monde en profite...
philcero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 09h20   #5
Membre habitué
 
Inscription : juin 2006
Messages : 170
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 170
Points : 143
Points : 143
pas forcément, on peut avoir un besoin de superviser le nbre de personnes connectés pour diverses raisons (sécurité, licensing, etc.)
couak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 09h28   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
et pourquoi pas regarder dans v$sessions ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 09h40   #7
Membre chevronné
 
Avatar de philcero
 
Inscription : septembre 2007
Messages : 519
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 519
Points : 649
Points : 649
Citation:
et pourquoi pas regarder dans v$sessions ?
Pour la simple et unique raison qu'un script SHELL automatisé ne doit JAMAIS se connecter à une base pour faire des requêtes. Si il le fait cela veut dire qu'il y a possibilité pour un flux réseau (Qui arrive sur ce compte) de faire un JUMP vers une base de données et roule ma poule, adieu la babase si c'est un pirate.
__________________
Pas de réponse aux messages privés. Faites un post pour vos problèmes, que tout le monde en profite...
philcero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 09h53   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
alors regarder le nombre de process Oracle DEDICATED s'il a la chance de ne pas être en MTS
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 10h06   #9
Membre chevronné
 
Avatar de philcero
 
Inscription : septembre 2007
Messages : 519
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 519
Points : 649
Points : 649
Pour compléter ma réponse c'est l'une des raisons qui ont poussés les éditeurs à créer des flux protégés pour piloter et monitorer leurs bases à distance (OEMAGENT).

Il faut bien garder à l'esprit, quand on gère une base, que celle-ci doit être hermétique à tout flux extérieur qui ne passerait pas par son LISTENER (En environnement critique, on crypte également son flux).
__________________
Pas de réponse aux messages privés. Faites un post pour vos problèmes, que tout le monde en profite...
philcero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 11h36   #10
Invité de passage
 
Inscription : juin 2008
Messages : 1
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1
Points : 1
Points : 1
Salut à tous,
Si on regarde au niveau process, on peut compter le nombre de sessions dédiées si on compte les process oracleSID
Cela qui sont par IPC ont "(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))"
et celles par oracle*net :
"(LOCAL=NO)"
Rem : Sur ma machine AIX, à cause de la redirection de port si on fait le compte par netstat, il faudra diviser le nombre par 2.

Halifa :Si tu décides de passer quand même par un user oracle , n'oublies pas de créer un compte avec des droits restreints.

@+
DBAh11e est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 11h57   #11
Membre chevronné
 
Avatar de philcero
 
Inscription : septembre 2007
Messages : 519
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 519
Points : 649
Points : 649
Je dirais même plus créé un compte qui ne puise pas avoir de login (shell=/bin/false).

Au moins ce sera un début de sécurisation...
__________________
Pas de réponse aux messages privés. Faites un post pour vos problèmes, que tout le monde en profite...
philcero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 12h15   #12
Nouveau Membre du Club
 
Inscription : mai 2008
Messages : 41
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 41
Points : 25
Points : 25
pardon...

Citation:
Envoyé par orafrance Voir le message
et pourquoi pas regarder dans v$sessions ?
Citation:
Envoyé par philcero Voir le message
Pour la simple et unique raison qu'un script SHELL automatisé ne doit JAMAIS se connecter à une base pour faire des requêtes.
Moi je pense qu'ilest possible d'utiliser v$session (et non v$sessions) dans unscript quiest soumis au serveur oracle comme une tache...
nwaitic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 14h04   #13
Membre chevronné
 
Avatar de philcero
 
Inscription : septembre 2007
Messages : 519
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 519
Points : 649
Points : 649
Le problème n'est pas technique, il est philosophique. Si tu as la responsabilité d'une base, tu as également la responsabilité de qui y entre. Donc il faut limiter les entrées au compte maître de la base qui lui doit être blindé comme personne et ensuite tous les autres accès ne doivent être que via SQL*Net.

Pourquoi ?

Si tu fais un compte dans un coin qui a la possibilité de lancer un script sur ta base c'est que tu réponds au moins à une des deux possibilités suivantes :
  • Tu as un compte et un mot de passe en clair dans un fichier texte visible de ce compte, et bien souvent de plein d'autres car les gens lancent du SQL*Plus avec compte et mot de passe sur la ligne de commande (ps -aef et zou je voie tout).
  • Ton compte fait partie du groupe assimilé DBA de ton OS et peut se connecter à ta base quand il veut.
Dans les deux cas tu as tout faux car même si ta solution semble propre, tu offres là une voir royale pour une attaque...

Alors ensuite on peut dire "Oui, mais statistiquement, j'ai une chance sur un milliard...". Grosse erreur, non pas sur le chiffre, on te donne la responsabilité d'une base c'est équivalent à te donner les clefs du coffre dans une banque ni plus ni moins. Si je laisse les clefs sur le comptoir est-ce normal ?
__________________
Pas de réponse aux messages privés. Faites un post pour vos problèmes, que tout le monde en profite...
philcero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 14h56   #14
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Par défaut Eclairez nos lanternes

J'ai un peu du mal à vous suivre:

Citation:
Envoyé par philcero Voir le message
Pour la simple et unique raison qu'un script SHELL automatisé ne doit JAMAIS se connecter à une base pour faire des requêtes. Si il le fait cela veut dire qu'il y a possibilité pour un flux réseau (Qui arrive sur ce compte) de faire un JUMP vers une base de données et roule ma poule, adieu la babase si c'est un pirate.
Citation:
Il faut bien garder à l'esprit, quand on gère une base, que celle-ci doit être hermétique à tout flux extérieur qui ne passerait pas par son LISTENER (En environnement critique, on crypte également son flux).
Cela veut dire que toute connexion Oracle Net peut être piratée dès qu'on utilise toujours le même identifiant/mot de passe sauf si Oracle Net ou TCP/IP encrypte la communication ? Il me semble que le listener n'est utilisé que pour l'établissement de la connexion TCP/IP; après la client est connecté directement à son processus dédié (ou partagé le cas échéant). D'un autre côté, il me semble aussi que le listener est obligatoire dès qu'il y a connexion par Oracle Net.

Je n'arrive pas à comprendre ce qui différencie le problème sécurité que vous évoquez dans ce cas spécifique avec le problème général de sécurité Oracle Net.

Si vous avez des liens sur des documents plus détaillés, ils sont les bienvenus.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 15h17   #15
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par philcero Voir le message
Si tu fais un compte dans un coin qui a la possibilité de lancer un script sur ta base c'est que tu réponds au moins à une des deux possibilités suivantes :
  • Tu as un compte et un mot de passe en clair dans un fichier texte visible de ce compte, et bien souvent de plein d'autres car les gens lancent du SQL*Plus avec compte et mot de passe sur la ligne de commande (ps -aef et zou je voie tout).
  • Ton compte fait partie du groupe assimilé DBA de ton OS et peut se connecter à ta base quand il veut.
Dans les deux cas tu as tout faux car même si ta solution semble propre, tu offres là une voir royale pour une attaque...
ou tu as un compte identifié par l'OS et a donc le droit de se connecter comme l'utilisateur OS a le droit de faire un PS

Si la sécurité est bien géré (pas d'user SYSDBA et pas utiliser SYSTEM) alors je ne vois pas se qui interdit de lancer des requêtes sur la base même pour du monitoring Sinon, tu t'interdis tous les outils de monitoring du marché qui se connecte à la base C'est à dire tous sauf data grid control
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 15h27   #16
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
J'ai moi aussi dans ma boîte des batches lancés via crontab unix, soit par un compte du groupe DBA (sans mot de passe), soit par compte unix identifié par l'OS sur la base
Personnellement, je ne vois pas non plus où est le mal niveau sécurité ...
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 21h25   #17
Futur Membre du Club
 
Inscription : mars 2008
Messages : 18
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mars 2008
Messages : 18
Points : 19
Points : 19
Il existe une troisième possibilité ; le wallet.
Le wallet contient, pour un TNS donné, un password. Ce password est donc utilisable sans être connu de l'utilisateur qui établit la connexion.
Ainsi, on profite des deux avantages :
  • limitation des privilèges : pas besoin d'avoir un privilège DBA ou SYSDBA
  • on ne se limite pas à une authentification OS
plalm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h53.


 
 
 
 
Partenaires

Hébergement Web