Je viens de remarquer que lorsque vous essayez d'exécuter une requête qui n'a pas les autorisations requises (testé uniquement sur une base de données mysql 5.7 utilisant le pilote mysql-connector-java v8), elle est traduite en un org.springframework.jdbc.BadSqlGrammarException
. Ceci est dû au fait que le pilote mysql lui-même lance une erreur java.sql.SQLSyntaxErrorException
.
Par exemple : java.sql.SQLSyntaxErrorException: INSERT command denied to user 'myuser'@'127.0.0.1' for table 'mytable'
Est-ce correct et/ou intentionnel ? J'ai essayé d'examiner les diverses exceptions existantes dans les deux cas. java.sql
et org.springframework.jdbc
sans trouver de candidat alternatif évident.
J'ai regardé le documentation mysql pour cette erreur :
Numéro d'erreur : 1142 ; Symbole : ER_TABLEACCESS_DENIED_ERROR ; SQLSTATE : 42000
Message : La commande %s est refusée à l'utilisateur '%s'@'%s' pour la table '%s'.
D'après ce que je sais, SQLSTATE 42000 est ce que le pilote utilise pour déterminer qu'il s'agit d'une erreur de syntaxe.