MySQL Integration

Automating your Data Types discovery and Privacy Requests fulfillment by integrating MineOS to MySQL

This integration allows you to:

  • Automate content classification to detect data types stored in your MySQL tables.
  • Automate Copy and Delete requests for your MySQL tables.

Before you start

  • Make sure your MineOS plan supports integrations.
  • Make sure you have the correct information and connectionString to connect to your MySQL database.
  • This integration supports MySQL server version 8.0 and up.

Make sure to whitelist MineOS IPs in your MySQL database:

- 34.77.7.236
- 35.187.97.141
- 34.76.247.90
- 34.140.71.114

Setting up

To connect the MySQL integration, follow these steps:

  1. On the left sidebar, click Data Inventory and then Data Sources
  2. Click on Add data source
  3. Select MySQL from the catalog, then enter the MySQL page from your data sources list
  4. In the RequestHandling tab, check the Handle this data source in privacy requests  or check the Use source in Content Discovery checkbox and choose the Integration handling style.
  5. create a new user and grant it with the following privileges:
    1. SELECT on the desired database, and tables on your MySQL Database
    2. DELETE on the desired database, and tables on your MySQL Database
      (to support DELETE requests)
  1. you can read about granting privileges here
  2. Enter your MySQL Database ConnectionString which can include:
    1. User ID,
    2. User Password,
    3. Server's IP,
    4. Server's Port,
    5. Database Name
    For example, In the following format:
    "Data Source=34.55.66.108;Port=3306;Database=dbName;User ID=userId;Password=userPassword;"

Optional: Use a client certificate

If you want to use a client certificate to authenticate with your MySQL server, paste it's details in the UI:

Screenshot 2023-11-09 at 14.21.02

 

Content Discovery

When using Content Discovery for your tables data, you need to make sure you have given the MySQL user the required permissions to your relevant tables.

Upon content discovery, we will scan your tables, and analyze each row's data in our PII Processing Engine. These scan results will be added to the data types of your integration general info.

DSR Queries

To manage your DSR handling actions, you need to define the queries that will run on the Database for each possible action:

Note: The queries you use won't be validated. You should run them in your MySQL account to make sure they are running as expected

Query used for search records & delete validation

The query will be used for showing how many records were found as well as showing a sample (preview) of the data. Also, it will be used as a validation for the delete action.

 

Example Query:

SELECT name,phone,address FROM `database1`.`table1` WHERE name =  '{{endUserEmail}}';

* Preview will return the count of the number of records returned in the query response

* Preview will show the first 3 values from the query response, it supports strings and long types

* The 'endUserEmail' variable is mandatory

 

Copy Query

The Copy query will be used for the Copy action. Copy action is running on the ticket processing page in ticket of type Copy when clicking on Generate Copy

Example Query:

SELECT * FROM `database1`.`table1` WHERE name = '{{endUserEmail}}';

* Copy will show all records returned in the query response

* The 'endUserEmail' variable is mandatory

 

Delete Query

The Delete query will be used for the Delete action. Delete action is running on the ticket processing page in ticket of type Deletion when clicking on Delete from X sources

 

Example Query:

DELETE FROM `database1`.`table1` WHERE name = '{{endUserEmail}}';

* The 'endUserEmail' variable is mandatory

 

Paste the details and queries in the Request handling tab in the correct inputs and click Save.

 

What's next?

Read more about the deletion process using integrations here.

Read more about the get a copy process using integrations here.

Talk to us if you need any help with Integrations via our chat or at portal@saymine.com, and we'll be happy to assist!🙂