7
votes

Écrivez une fois, lisez de nombreux champs MySQL

Pouvez-vous limiter un champ d'être mis à jour sans accorder des privilèges utilisateur supplémentaires?

Fondamentalement, une valeur d'une ligne ne peut être définie que lors d'une instruction insertion.


0 commentaires

4 Réponses :


0
votes

Pas un ajustement exact pour votre question: Si vous exécutez MySQLisampack sur la table, la table sera en lecture seule.

C'est bon si vous avez un datawhawharehouse qui ne fait référence que, mais pas bien si vous voulez simplement créer une colonne "en direct" en lecture seule.


0 commentaires

8
votes

Oui. Si vous Grant uniquement Insérer et Sélectionnez < / Code> Privilèges. Comme: xxx

... de cette façon, l'utilisateur ne peut mettre à jour que le message Message et TIME Colonnes.


0 commentaires

1
votes

MySQL Différeniez entre les privilèges d'insertion et les privilèges de mise à jour, ce qui donnerait à un utilisateur la possibilité d'insérer, mais ne mettant pas à jour plus tard.

Voir ce lien: http: //dev.mysql. COM / DOC / REFMAN / 5.5 / FR / PRIVILEGES-FOURNIS.HTML


0 commentaires

4
votes

Vous pouvez utiliser un mise à jour de la gâchette pour empêcher la valeur d'être mise à jour.


2 commentaires

@ OCASO-PROTAL Ceci a fait l'astuce Créer une trigger BlockUpdate avant de mettre à jour sur Test pour chaque ligne de départ définie Nouveau.Value = Old.Value; Fin


+1 Dirty Dirty Hack, mais OP a déclaré qu'il ne veut pas gâcher avec les utilisateurs privés.