IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

InterBase Discussion :

Remplacer SYSDBA comme propriétaire la base


Sujet :

InterBase

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut Remplacer SYSDBA comme propriétaire la base
    Bonjour,
    J’ai une installation assez ancienne qui s’appuie sur INTERBASE version XE7 update 4. Au fil des modifications successives, il apparaît que des tables sont la propriété de différents utilisateurs. En réalité 2 utilisateurs, dont SYSDBA.
    Je voudrais restructurer cette base pour que toutes les tables soient la propriété du même Owner.

    Si l’opération avec SYSDBA comme propriétaire de la base de données ne pose aucun souci particulier, il n’en est pas même si j’effectue la création de la base avec un autre utilisateur.
    J’ai parcouru internet dans tous les sens et, de même pour la documentation Interbase qui est très copieuse. Après 3 jours, j’ai décidé de faire appel à vos connaissances, car il doit y avoir un point qui m’échappe complètement.
    Dans toute la documentation , il est question du SYSDBA ou du propriétaire de la base. Mais, pour ce dernier aucune explication sur la définition de ce fameux propriétaire.
    Si s’effectue la création de la base avec un autre utilisateur, la base est bien créée et les tables sont bien affectées au bon utilisateur. Tout se complique avec les privilèges. Au départ, l'user possède bien les droits sur la table créée. Par contre, je supprime ce privilège (exemple : insert), il est impossible d’en effectuer la restitution, car je ne possède pas les droits. Le message qui s’affiche est :

    This operation is not defined for system tables.
    unsuccessful metadata update.
    no I privilege with grant option on table/view T_CLIENT.


    Toutes mes recherches sont vaines et je ne sais pas comment définir cette opération dans les tables systèmes.

    Ma question est « Comment créer une base de données ayant un autre propriétaire que SYSDBA et qui possède toutes les prérogatives de SYSDBA ». Un examen de FIREBIRD m’a permis de constater que le transfert à un autre utilisateur de toutes les options qui existent, pour SYSDBA, sont transférables et clairement expliquées dans la documentation (Firebird version 3.00 et plus). Pour INTERBASE, tout semble plus compliqué.

    D’avance merci pour votre éclairage.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,
    Mon message n'enregistre pas un franc succès.
    Je vais contourner la difficulté, car il est maintenant possible d'utiliser un mot de passe jusqu'à 32 caractères avec Interbase. Cependant, cette nouvelle possibilité ne résout pas le cas de déplacement de la base sur un autre ordinateur.
    Par contre, si nous utilisons le stockage des administrateurs et utilisateurs dans la base au lieu de "Admin.ib", le transfert sur un autre ordinateur continue de bloquer l'ouverture. C'est dans cette situation où je voudrais pouvoir transférer l'ensemble des droits SYSDBA vers un autre administrateur.
    Il y a certainement un point que je n'ai pas compris, malgré des recherches importantes. En plus tout ceci est anglais, ce qui ne simplifie pas la recherche.

    Merci pour ceux qui ont pris le temps de regarder mon problème, même s'ils ne m'ont apporté aucun d'éclaircissement.

    A++

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par seabs Voir le message
    Mon message n'enregistre pas un franc succès.
    Le fait est que j'ai abandonné Interbase au profit de Firebird.
    J'aurai pu répondre de regarder comment c'est fait avec Firebird mais
    Un examen de FIREBIRD m’a permis de constater que le transfert à un autre utilisateur de toutes les options qui existent, pour SYSDBA, sont transférables et clairement expliquées dans la documentation (Firebird version 3.00 et plus).
    c'est déjà fait, voilà pourquoi je n'avais pas répondu au premier message.

    Par contre, si nous utilisons le stockage des administrateurs et utilisateurs dans la base au lieu de "Admin.ib", le transfert sur un autre ordinateur continue de bloquer l'ouverture.
    là je ne saisi pas vraiment
    C'est dans cette situation où je voudrais pouvoir transférer l'ensemble des droits SYSDBA vers un autre administrateur.
    Est-ce qu'interbase à des ROLE, AMHA certainement et c'est la piste que je propose créer puis utiliser à bon escient un role qui autorise la création des tables. Si j'ai déjà utilisé les roles pour protéger certaines colonnes ou table, je n'ai jamais fait ce genre d'utilisation, mais AMHA c'est possible.
    Je ne crois pas que l'on puisse modifier une table système RDB$relations pour modifier RDB$owner_name directement du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE RDB$relations set RDB$owner_name='proprio' where RDB$relation_name='unetable'
    du moins est-ce interdit maintenant avec les versions FB 3 et plus (des "mécanismes SQL" particuliers sont mis en place)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. rechercher et remplacer un caractere dans une base de données
    Par trialrofr dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 29/01/2009, 10h07
  2. Réponses: 0
    Dernier message: 04/09/2008, 19h43
  3. taille base comme dans propriete base
    Par chauchs dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/07/2007, 16h53
  4. [Système] Définir root comme propriétaire via chown
    Par nairolf_ dans le forum Langage
    Réponses: 3
    Dernier message: 04/06/2007, 21h47
  5. Réponses: 18
    Dernier message: 11/05/2007, 18h44

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