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 database: IP Whitelist
Setting up
To connect the MySQL integration, follow these steps:
- On the left sidebar, click Data Inventory and then Data Sources
- Click on Add data source
- Select MySQL from the catalog, then enter the MySQL page from your data sources list
- 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.
- create a new user and grant it with the following privileges:
- SELECT on the desired database, and tables on your MySQL Database
- DELETE on the desired database, and tables on your MySQL Database
(to support DELETE requests)
- you can read about granting privileges here
- Enter your MySQL Database ConnectionString which can include:
- User ID,
- User Password,
- Server's IP,
- Server's Port,
- Database Name
"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:
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 = {% raw %} '{{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!🙂