How to Anonymize SQL Data with Faker.js
Easily replace sensitive customer data with randomly generated values while maintaining structure and consistency.
Install Faker.js to generate realistic placeholder data:
npm install --save-dev @faker-js/faker
const { fakerFR: faker } = require('@faker-js/faker');
// Function to create a randomized user
function createRandomUser() {
return {
firstname: faker.person.firstName(),
lastname: faker.person.lastName(),
email: faker.internet.email(),
phone1: faker.phone.number({ style: 'national' }).replaceAll(" ", ""),
description: faker.lorem.sentence({ min: 1, max: 5 }),
};
}
// Retrieve customer records
const query = "SELECT id, email, firstname, lastname, phone1, description FROM customers";
const results = await getSQL(query, "127.0.0.1", 3306, "mysql", "username", "password", "databaseName");
// Loop through records and anonymize data
let counter = 0;
for (const row of results) {
const newUser = createRandomUser();
const updateQuery = `
UPDATE customers
SET firstname='${newUser.firstname}',
lastname='${newUser.lastname}',
phone1='${newUser.phone1}',
description='${newUser.description}',
email='${newUser.email}'
WHERE id=${row.id}`;
await getSQL(updateQuery, "127.0.0.1", 3306, "mysql", "username", "password", "databaseName");
counter++;
if (counter % 100 === 0) {
print(`Processed: ${counter}/${results.length}`);
}
}
Perfect for testing, development, and GDPR compliance! 🚀