1

We have developed a data matching application where each user can upload their data and the apply the features we provide to identify when the same entities exist in those files. While it will change in the future, we are currently built on MySQL. Each user has their own tables based on their own data. Thus, each user has a different number of tables and most have structures unique to that user (i.e. I couldn't put all user data into one, super long table).

We currently store each user's data in a schema dedicated to that user but all of these schemas are in one, common DB. The only way users can get to their data is through our application. It uses one user & password to access all schemas in the DB.

As we get more folks testing our system, I am starting to think more deeply about security. One thing I'm considering is dedicating a unique UID / PW for each application user and giving that UID access only to that user's schema. In addition, I would like to encrypt each user's data using a key specific to that user (it's been suggested to me that this protects data should a bug in our application accidentally give a user access to some other user's schema).

So, my question is this: can I encrypt a Google Cloud MySQL DB at the schema level and, if so, how? If not, is the only option to create a separate instance for each user?

Thanks! Ben

Ben
  • 4,798
  • 3
  • 21
  • 35
  • 2
    Google Cloud SQL does not support table level encryption keys. You can implement column level client encryption before storing data in table columns. https://cloud.google.com/sql/docs/sqlserver/client-side-encryption – John Hanley Apr 25 '21 at 00:44
  • Thank you, @JohnHanley. I'll give this some thought although it could be awkward (although not impossible) for me for a few reasons. 1) I would need to encrypt just about every column in every table, 2) People can search on the encrypted data, so I'd need to encrypt their search criteria before running them - not sure how this would work for operators like "LIKE", 3) it would complexify functionality where users can create columns derived from their original data. I know that I eventually need to go to BigQuery for performance reasons; this might be another need that forces that issue. – Ben Apr 25 '21 at 21:39

0 Answers0