1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 338
    Points : 742
    Points
    742

    Par défaut Problème de migration 2.5 vers 3.0

    Bonsoir a tous

    j'ai commencer la migration de mon serveur 2.5X vers la 3.X

    Pour ma base j'ai pas de soucis ! en revanche pour la base de sécurité ! j'ai soucis a l’exécution pour intégrer le code

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:\Program Files\Firebird\Firebird_3_0>isql -user sysdba -pas masterkey -i security_database.sql security4.fdb

    code erreur :

    USR PASSWD
    =============================== ====================================
    Statement failed, SQLSTATE = 42000
    Dynamic SQL Error
    -SQL error code = -104
    -Token unknown - line 1, column 22
    -ADMIN
    -At block line: 18, col: 2
    At line 31 in file security_database.sql

    C:\Program Files\Firebird\Firebird_3_0>
    j'ai donc ouvert le script pour voir ce qu'il y avait a cette ligne :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    set term ^; // voici la ligne 31 dans mon éditeur 
    
    execute block returns(usr varchar(31), passwd varchar(36))
    as
    declare variable frst varchar(32);
    declare variable mddl varchar(32);
    declare variable lst varchar(32);
    declare variable attr varchar(4096);
    declare variable sql varchar(4096);
    declare variable uid int;
    declare variable gid int;
    
    begin
    for select rdb$user_name, rdb$first_name, rdb$middle_name, rdb$last_name, rdb$uid, rdb$gid,
    	uuid_to_char(gen_uuid()) from rdb$users
    	where rdb$user_name is not null and upper(rdb$user_name) != 'SYSDBA'
    into :usr, :frst, :mddl, :lst, :uid, :gid, :passwd
    do begin
    	-- basic fields
    	sql = 'create or alter user ' || usr || ' password ''' || passwd || '''';
    	if (frst is not null) then sql = sql || ' firstname ''' || frst || '''';
    	if (mddl is not null) then sql = sql || ' middlename ''' || mddl || '''';
    	if (lst is not null) then sql = sql || ' lastname ''' || lst || '''';
    	sql = sql || ' active';
    
    	-- attributes
    	attr = '';
    	if (uid is not null) then attr = 'uid=''' || uid || '''';
    	if (gid is not null) then begin
    		if (char_length(attr) > 0) then attr = attr || ', ';
    		attr = attr || 'gid=''' || gid || '''';
    	end
    	if (char_length(attr) > 0) then begin
    		sql = sql || ' tags (' || attr || ')';
    	end
    
    	-- create it
    	execute statement sql;
    	-- and show password to admin
    	suspend;
    end
    end^
    
    commit^
    
    exit^

    J'ai un utilisateur du nom de ADMIN dans mon ancienne base ! c'est peut être lui qui pose problème ?

    Merci de m'aiguiller

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 365
    Points : 19 386
    Points
    19 386
    Billets dans le blog
    4

    Par défaut

    Bonjour,

    c'eut été SYSDBA j'aurais répondu que oui mais ADMIN non à moins que les étapes aient été mal suivies !

    In firebird 2.5 backup security database:
    gbak -user sysdba -pas masterkey -b {host/path}security2.fdb security.fbk

    In firebird 3 restore copy of 2.5 security database:
    gbak -user sysdba -pas masterkey -c security.fbk {host/path}security2.5

    And run users upgrade sql script:
    isql -user sysdba -pas masterkey -i security_database.sql {host/path}security2.5
    ce qui pourrait remettre en cause le script si la démarche est suivie à la lettre, je ne vois pas par contre si la security_database a déjà été modifiée ?

    AMHA c'est plutôt une donnée (dans la base 2.5) de l'utilisateur ADMIN qui pose problème.

    pour vérifier , il faudrait écrire un (modifier le) script pour tester la génération du SQL


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    set term ^;
     
    execute block returns(SQL  varchar(4096))
    as
    declare variable frst varchar(32);
    declare variable mddl varchar(32);
    declare variable lst varchar(32);
    declare variable attr varchar(4096);
    declare variable uid int;
    declare variable gid int;
     
    begin
    for select rdb$user_name, rdb$first_name, rdb$middle_name, rdb$last_name, rdb$uid, rdb$gid,
    	uuid_to_char(gen_uuid()) from rdb$users
    	where rdb$user_name is not null and upper(rdb$user_name) != 'SYSDBA'
    into :usr, :frst, :mddl, :lst, :uid, :gid, :passwd
    do begin
    	-- basic fields
    	sql = 'create or alter user ' || usr || ' password ''' || passwd || '''';
    	if (frst is not null) then sql = :sql || ' firstname ''' || frst || '''';
    	if (mddl is not null) then sql = :sql || ' middlename ''' || mddl || '''';
    	if (lst is not null) then sql = :sql || ' lastname ''' || lst || '''';
    	sql = sql || ' active';
     
    	-- attributes
    	attr = '';
    	if (uid is not null) then attr = 'uid=''' || uid || '''';
    	if (gid is not null) then begin
    		if (char_length(attr) > 0) then attr = attr || ', ';
    		attr = attr || 'gid=''' || gid || '''';
    	end
    	if (char_length(attr) > 0) then begin
    		sql = :sql || ' tags (' || attr || ')';
    	end
     sql=:sql||';';  -- ajout ; en fin 
      suspend;
    end
    end^
     
    exit^
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 338
    Points : 742
    Points
    742

    Par défaut

    Bonjour

    j'ai suivi exactement la procédure à la lettre ! aussi je comprend pas bien votre démarche.
    je pense que je vais supprimer l'utilisateur ADMIN et reprendre la procédure de migration.

    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 338
    Points : 742
    Points
    742

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\Firebird\Firebird_3_0>isql -user sysdba -pas masterkey -i security_database.sql security44.fdb
    et voici ce que j'ai comme retour

    USR PASSWD
    =============================== ====================================
    MARTHE 225B4B80-286F-48C4-B155-7657A4B8F457
    PAULINE F5264954-D73D-4493-BEA7-5EB1B86A8A8F
    PAPA 7E234624-980C-47F8-BD4F-5DA50D662C60

    Statement failed, SQLSTATE = 08001
    I/O error during "CreateFile (open)" operation for file "C:\PROGRAM FILES\FIREBIRD\FIREBIRD_3_0\SECURITY3.FDB"
    -Error while trying to open file
    -Le processus ne peut pas accÚder au fichier car ce fichier est utilisÚ par un autre processus.
    After line 71 in file security_database.sql
    Statement failed, SQLSTATE = 08001
    I/O error during "CreateFile (open)" operation for file "C:\PROGRAM FILES\FIREBIRD\FIREBIRD_3_0\SECURITY3.FDB"
    -Error while trying to open file
    -Le processus ne peut pas accÚder au fichier car ce fichier est utilisÚ par un autre processus.
    After line 73 in file security_database.sql
    qu'es qui na pas marché ?

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 365
    Points : 19 386
    Points
    19 386
    Billets dans le blog
    4

    Par défaut

    re,

    aussi je comprend pas bien votre démarche.
    ma démarche était d'utiliser le script proposé pour voir le SQL construit plutôt que d'exécuter ce SQL


    Pour ADMIN, j'ai trouvé : c'est un keyword depuis FB 2.5
    du coup, si le 'create or alter user ' || usr || ' password ''' || passwd ... ne passe pas peut être que si usr était entre '' cela serait passé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'create or alter user ''' || usr || ''' password ''' || passwd ||''''
    avez vous essayé en lançant la console en mode administrateur ?

    sinon, en récupérant le script tel que je l'ai indiqué (j'ai légèrement modifié pour avoir le ; en fin) et en l'exécutant sur une base quelconque ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 338
    Points : 742
    Points
    742

    Par défaut

    je suis viens juste de retester et ça marche ! en faite j'ai pas les droits écriture sur le répertoire FIREBIRD_3_0.

    merci a tous

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 338
    Points : 742
    Points
    742

    Par défaut

    Citation Envoyé par SergioMaster Voir le message
    re,
    ma démarche était d'utiliser le script proposé pour voir le SQL construit plutôt que d'exécuter ce SQL
    Pour ADMIN, j'ai trouvé : c'est un keyword depuis FB 2.5
    ok SergioMaster merci mais j'avais déjà supprimer le user ADMIN.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problèmes suite à migration ACCESS 2000 vers 2010
    Par buzuck20 dans le forum Access
    Réponses: 1
    Dernier message: 23/06/2014, 23h06
  2. Problème de migration de MySQL vers SQL Server
    Par sovo dans le forum Langage SQL
    Réponses: 10
    Dernier message: 01/03/2013, 14h02
  3. Problème de migration sunopsis V3 vers ODI
    Par lyten_ dans le forum ODI (ex-Sunopsis)
    Réponses: 5
    Dernier message: 04/11/2010, 14h24
  4. Réponses: 4
    Dernier message: 05/07/2009, 21h05
  5. Réponses: 8
    Dernier message: 05/07/2009, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo