cossacklabs / acra

Database security suite. Database proxy with field-level encryption, search through encrypted data, SQL injections prevention, intrusion detection, honeypots. Supports client-side and proxy-side ("transparent") encryption. SQL, NoSQL.
https://www.cossacklabs.com/acra/
Apache License 2.0
1.32k stars 128 forks source link

[ISSUE]Supported MySQL Versions #694

Closed devendermishra closed 6 months ago

devendermishra commented 7 months ago

Describe the query I want to know what are the supported versions of MySQL with acra-server in community edition?

To Reproduce NA

Expected behavior NA

Acra configuration files NA

Environment (please complete the following information):

Lagovas commented 6 months ago

Sorry for so long response. We don't recommend to use Acra 0.90 version and I didn't tested it due to it uses old approach with secure session as transport and acra-connector as additional proxy between app and acra-server, that looks overcomplicated for modern deployments. Our tests regularly test Acra with mysql 5.7.25 and 5.7.31. Additionally, I had tested with fresh 5.7 and 5.5 images from the docker hub with Acra 0.95.0 and transparent encryption/decryption works.

Unfortunately, Acra Community edition doesn't support properly mysql 8.X client's that use CLIENT_QUERY_ATTRIBUTES at the wire protocol level. Mysql's CLI tool mysql uses it. We plan to bring it to the community addition in the next year.

How to detect that mysql driver uses CLIENT_QUERY_ATTRIBUTE? You will see next log from the acra-server: acra-server_1 | time="2023-12-21T22:20:25Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'".

devendermishra commented 6 months ago

Thanks @Lagovas. I am using master branch (Commit: 3a65ebf206928f1eb69fe3177271632e4b56fb2f).