ancienne version informix V2 et C-ISAM
Bonjour,
Je dois exporter les tables C-ISAM de 2 bases informix d'un serveur unix SCO,
sous forme de fichier ASCII avec séparateur.
Je ne vois pas d'utilitaire dbexport, ni de unload dans le /usr/informix/bin.
questions:
1)comment connaitre les noms des bases avec dbschema.
2)Y a t'il des droits et des variables d'environnement à positionner ?
(comment doit on indiquer le chemin des bases?)
3)quel est le possesseur des bases?
4)comment faire le lien entre le possesseur de la base et l'utilisateur au login?
5)quels utilitaires peut on utiliser si dbexport et unload n'existent pas dans
cette version d'informix?
Droits et paramètres Informix
Bonjour,
Citation:
Envoyé par
jchjch
Je dois exporter les tables C-ISAM de 2 bases informix d'un serveur unix SCO, sous forme de fichier ASCII avec séparateur.
Je ne vois pas d'utilitaire dbexport, ni de unload dans le /usr/informix/bin.
questions :
1) Comment connaitre les noms des bases avec dbschema ?
Citation:
-> Le nom d'une Base, c'est le nom du répertoire (suffixé [.dbs]) dans lequel se trouvent les tables.
-> Il est renseigné dans le .profile (paramètre DBPATH).
(voir question suivante)
Exemple : DBPATH=/chemin-de-ma-base
2) Y a t'il des droits et des variables d'environnement à positionner ?
(comment doit on indiquer le chemin des bases ?)
Citation:
-> Pour les droits, voir les instructions CONNECT pour la Base et GRANT pour les tables
Extrait de mon sql db_connect.sql :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| {------------------------------------------------------------------------------}
{
db_connect
}
{------------------------------------------------------------------------------}
{
grant dba to informix;
grant dba to proprietaire-de-la-base;
revoke connect from public;
grant connect to user_1 { service X };
grant connect to user_2 { service Y };
}
{------------------------------------------------------------------------------} |
NB : informix est toujours [dba] (data base administrator)
Extrait de mon sql db_grant.sql :
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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| {------------------------------------------------------------------------------}
{
db_grant.sql
Spécification des privilèges d'accès aux tables et vues de la Data Base
1. Suppression de tous les privilèges pour "public"
Cas où l'on souhaite limiter l'accès à la BDD qu'aux seul(e)s gestionnaires,
les droits unix n'étant pas suffisamment restrictifs.
Cette partie du SQL peut être utilisée pour supprimer tous les privilèges
accordés au logname d'un(e) gestionnaire. Il suffit d'isoler cette partie du
SQL et de remplacer "public" par le logname de ce(tte) gestionnaire.
2. Affectation de tous les privilèges pour "public"
Cas où l'on souhaite restaurer tous les privilèges pour "public"
3. Affectation de tous les privilèges pour chaque logname gestionnaire
4. Affectation de tous les privilèges pour un logname gestionnaire
Isoler cete partie du SQL et remplacer "logname" par le logname gestionnaire
5. Affectation du seul privilège d'accès en consultation pour certains lognames
}
{------------------------------------------------------------------------------}
{
sql de précaution en cas de run accidentel
}
{------------------------------------------------------------------------------}
select rien
from rien;
{------------------------------------------------------------------------------}
{
1. Suppression de tous les privilèges pour "public"
Cas où l'on souhaite limiter l'accès à la BDD qu'aux seul(e)s gestionnaires,
les droits unix n'étant pas suffisamment restrictifs.
Cette partie du SQL peut être utilisée pour supprimer tous les privilèges
accordés au logname d'un(e) gestionnaire. Il suffit d'isoler cette partie du
SQL et de remplacer "public" par le logname de ce(tte) gestionnaire.
}
{------------------------------------------------------------------------------}
{
revoke all on table from public;
revoke all on table from user_1 { service X };
revoke all on table from user_2 { service Y };
}
{------------------------------------------------------------------------------}
{
grant select on table to public;
grant all on cm to logname; {communes ----------------------------}
grant all on cp to logname; {codes postaux -----------------------}
}
{------------------------------------------------------------------------------} |
-> Le chemin de la ou des Bases se renseigne dans la paramètre DBPATH du .profile du répertoire de connexion de l'utilisateur. Indiquer le chemin du répertoire maître.
Exemple n° 1 :
Code:
1 2
| /mes_bases/base_1.dbs
/mes_bases/base_2.dbs |
-> DBPATH=/mes_bases
=> Les deux bases seront visibles
Exemple n° 2 :
Code:
1 2
| /base_1/base_1.dbs
/base_2/base_2.dbs |
-> DBPATH=/base_1:/base_2
=> Les deux bases seront visibles
Personnellement j'organisais mes développements ainsi :
Code:
1 2 3 4 5
| /base_1/base_1.dbs
/base_1/shell
/ace
/sql
/isql |
Le répertoire /base_1/base_1/isql étant mon répertoire de connexion "informix" contenant mes requêtes et mes écrans de développement. Mon .profile contient plusieurs paramètres DBPATH dont un seul est opérationnel, les autres étant mis en commentaire (répertoire(s) d'essai). Pour passer d'une base en exploitation à une base d'essai, il suffit d'inverser la mise en commentaire (#), de sauvegarder le . profile modifié puis d'exécuter le .profile (. .profile).
Exemple n° 3 :
Code:
1 2 3 4 5
| /essai_1/base_1.dbs
/base_1/base_1.dbs
DBPATH=base_1
# DBPATH=essai_1 |
3) Quel est le possesseur des bases ?
-> Je ne comprends pas la question. Il y a deux paramètres à renseigner, INFORMIXDIR pour indiquer où se trouve informix et INFORMIXSERVEUR pour indiquer le nom du serveur (suffixé par [_se].
Code:
1 2 3
| INFORMIXDIR=/informixV7.23
# INFORMIXDIR=/informixV7.24
INFORMIXSERVER=[nom-du-serveur]_se |
Pour les variables d'environnement, voir la dernière question.
4) Comment faire le lien entre le possesseur de la base et l'utilisateur au login ?
-> Cela s'indique dans le répertoire de connexion de l'utilisateur, paramètre DBPATH
5) Quels utilitaires peut on utiliser si dbexport et unload n'existent pas dans
cette version d'informix ?
-> Je doute que dbexport et unload puissent ne pas exister. J'ai commencé à travailler avec informix sous unix SCO en 1991 et ça existait. Il doit y avoir un problème de droits. Pourquoi ne te connectes-tu pas informix qui a tous les droits ?
Paramètres à renseigner dans le .profile (sur plate-forme AIX) :
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 25 26 27 28
| INFORMIXDIR=/informixV7.23
# INFORMIXDIR=/informixV7.24
INFORMIXSERVER=[nom-du-serveur]_se
DBPATH=/base_1
# DBPATH=/base_1:base_2
# DBPATH=/base_2
# DBPATH=/essai_1
DBTEMP=
DBEDIT=vi
DBDATE=DMY2/
# DBDATE=DMY4/
DBCENTURY=R
DBMONEY=". Euro"
DBLANG=
# DBLANG=msg/fr_fr/0333 # AIX
INFORMIXTERM=terminfo
EDITOR=/bin/vi
export INFORMIXDIR INFORMIXSERVER DBPATH DBTEMP DBEDIT DBDATE DBCENTURY DBMONEY INFORMIXTERM EDITOR DBLANG |
Cordialement