Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What should be the approach to supporting Microsoft SQL Server and Oracle? #704

Open
samwell-ho opened this issue May 31, 2024 · 3 comments

Comments

@samwell-ho
Copy link

I looked at the ACRA documentation and found out that currently only MySQL/PostgreSQL is supported.

However, it supports SQL database management systems. So is there any way to integrate with Microsoft SQL Server and Oracle?

What should be the approach to supporting Microsoft SQL Server and Oracle?

@Lagovas
Copy link
Collaborator

Lagovas commented May 31, 2024

We don't have plans about mssql & oracle, and we didn't have requests for that. To add support of new databases we need specifications of db wire protocols that proprietary db rarely provides it

@samwell-ho
Copy link
Author

samwell-ho commented Jun 3, 2024

I think AcraTranslator can be used for proprietary databases (no published data reading and writing protocols) such as Oracle, MSSQL,...

I'm just wondering about its performance when processing large data, I'm not sure if it can handle data processing with tens of millions of records?

@Lagovas
Copy link
Collaborator

Lagovas commented Jun 4, 2024

I think AcraTranslator can be used for proprietary databases (no published data reading and writing protocols) such as Oracle, MSSQL,...

Yes, you can use AcraTranslator for all other databases not supported by AcraServer. In this case, your app will be the proxy between the database and target data clients. You can implement your own DAO service to encapsulate all crypto and security operations, passing data through AcraTranslator before saving it to the database and before passing it forward to the client services.

I'm just wondering about its performance when processing large data, I'm not sure if it can handle data processing with tens of millions of records?

Anyway, you need benchmarks and tests with your setup and required security controls. Any generic benchmark will not tell you whether will it provide the required SLA or not. And it's up to you how to handle it. You can scale AcraTranslator's horizontally, you can parallelize queries from your app to AcraTranslator, and so on.
About millions of records. Does your app load 10kk records from the database to the memory or does it query a smaller set of data from the 10kk records? If your database stores 10kk rows, your app gets as a result only 100 rows, so the service will need to pass through AcraTranslator only 100 rows to get decrypted/deanonymised data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants