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

SQL Firebird Discussion :

Modification d'un champ


Sujet :

SQL Firebird

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut Modification d'un champ
    Bonjour,

    A partir d'une base ayant 2 utilisateurs SYSDBA et USER1 (avec tous les droits), je cherche à modifier la taille d'un champ dans une table existente.
    J'utilise la requete suivante

    update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = "LONG_VARCHAR" where (RDB$FIELD_NAME = "field1") and (RDB$RELATION_NAME = "table1");

    Qui me retourne le message suivant, quand je suis connecté en USER1 :
    Erreur du serveur de base de données : no permission for control access to TABLE TABLE1

    Alors qu'elle fonctionne correctement quand je suis connecté en SYSDBA.
    J'ai relancé une serie de GRANT, et le pb persiste.

    Est-ce que la structure de la base n'est modifiable que par SYSDBA ? ou j'ai loupé quelque chose.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Points : 376
    Points
    376
    Par défaut
    heu... il me semble dangeureux de faire cela...

    pourquoi ne pas essayer quelque chose du genre alter table table1 alter field1 type varchar(200) plutôt que de tenter de faire un hotfix toujours hazardeux?

    si tu as les droits sur cette table, cela devrait passer comme une lettre à la poste (pas un jour de grêve...)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    En fait je veux utiliser un varchar supérieur à 255 caractères (2048).

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Je viens de faire l'essai et j'ai l emessage suivant

    This operation is not defined for system tables.
    unsuccessful metadata update.
    Column FIELD1 from table TABLE1 is referenced in RDB$231

  5. #5
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Tu ne pourras pas modifier ton champ s'il est utilisé dans une vue ou une procédure stockée... Vérifie dans les dépendances de ta table.

    @+

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Il y avait une vue sur ce champ.
    Mais même après destuction de la vue, ou test sur un autre champ, j'ai toujours le même message.

    Ce que je ne comprends pas, c'est que ça marche par contre sans soucis, si je me connecte à la base en tant que SYSDBA.

  7. #7
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Est-ce que ton utilisateur à bien tous les droits nécessaires sur les tables système ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Normalement OUI.

    J'ai refait des grant sur cette table, plus sur la table RDB$RELATION_FIELDS.
    Mais rien n'y change

  9. #9
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Bon, après plusieurs tests, voici l'explication (c'est dû au OWNER) :

    Un utilisateur ne peut modifier QUE LES TABLES QU'IL A CREEES, quelque soient ses droits sur RDB$RELATION_FIELDS.

    Sysdba peut modifier TOUTES LES TABLES DE TOUT LE MONDE.

    @+

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Ok, je comprend mieux maintenant.

    Et dans mon cas les tables ont été créées par SYSDBA.

    Merci de tes lumières.

Discussions similaires

  1. Date de modification d'un champs
    Par Samish dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/09/2005, 12h34
  2. Réponses: 9
    Dernier message: 22/06/2005, 08h45
  3. Modification d'un champs texte
    Par shinobi dans le forum Access
    Réponses: 2
    Dernier message: 15/06/2005, 10h05
  4. empêcher la modification d'un champ
    Par shurized dans le forum Oracle
    Réponses: 29
    Dernier message: 30/08/2004, 18h25
  5. DBNavigator, requete SQL et modif d'un champ
    Par TieumB dans le forum C++Builder
    Réponses: 9
    Dernier message: 27/01/2004, 08h50

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