1 votes

Restriction des autorisations d'auto-incrément de l'utilisateur MySQL

J'ai deux bases de données dont les identifiants d'incrémentation automatique de diverses tables doivent être synchronisés. Pour l'instant, j'ai une fonction PHP qui vérifie l'identifiant d'auto-incrémentation actuel pour les deux tables, puis règle le plus bas sur le plus haut. S'il existe une meilleure façon de procéder, je suis tout ouïe.

Je ne veux vraiment pas donner à l'utilisateur Web des droits de modification, car une injection SQL pourrait effacer tous les mots de passe (ou autre chose de stupide). Existe-t-il un moyen de restreindre un utilisateur MySQL à la modification de l'auto-incrément sans l'ouvrir aux déclarations de modification ?

0voto

Marcus Adams Points 27070

Dans MySQL, vous pouvez définir la valeur d'une colonne à incrémentation automatique. MySQL augmentera automatiquement le nombre suivant d'une unité. Disons que j'ai deux enregistrements jusqu'à présent, donc la valeur la plus élevée dans la colonne d'autoincrémentation id Le champ est 2 . J'insère un nouvel enregistrement, en spécifiant la valeur.

INSERT INTO User (id, name) values(5, 'john')

La prochaine valeur d'identification sera 6 :

INSERT INTO User (name) values('dave')

Il n'est pas nécessaire de modifier le tableau.

Dans MSSQL, vous devez appuyer sur un bouton pour faire la même chose.

SET IDENTITY_INSERT ON

0voto

Danack Points 8764

"J'ai deux bases de données qui ont besoin de synchroniser leurs identifiants d'incrémentation automatique sur diverses tables."

WAT ?

"Je parle en fait de synchroniser deux tables identiques sur des bases de données différentes."

Si vous souhaitez répliquer la même table afin qu'elle soit accessible sur deux machines différentes, vous devez utiliser la réplication MySQL, plutôt que d'essayer de la réimplémenter à partir de zéro.

Si vous ne voulez pas répliquer exactement les tables, mais simplement réinsérer les données à un endroit différent, vous devez refaire le code utilisé pour les insérer en premier lieu.

Essayer de synchroniser manuellement des identifiants d'incrémentation automatique est presque certainement la mauvaise chose à faire, quel que soit le but recherché.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X