datasquirel/package-shared/shell/updateSSLUsers.ts
Benjamin Toby c37d105dee Updates
2025-07-09 20:30:45 +01:00

54 lines
1.5 KiB
TypeScript

require("dotenv").config({ path: "./../.env" });
import grabDSQLConnection from "../utils/grab-dsql-connection";
import grabSQLKeyName from "../utils/grab-sql-key-name";
/**
* # Main DB Handler Function
* @async
*
* @param {object} params
* @param {string} params.query
* @param {string[] | object} [params.values]
* @param {string} [params.database]
*
* @returns {Promise<object|null>}
*/
(async () => {
const CONNECTION = await grabDSQLConnection();
try {
const [result] = await CONNECTION.query(
"SELECT user,host,ssl_type FROM mysql.user"
);
for (let i = 0; i < result.length; i++) {
const user = result[i];
if (
user.User !== process.env.DSQL_DB_READ_ONLY_USERNAME ||
user.User !== process.env.DSQL_DB_FULL_ACCESS_USERNAME ||
!user.User?.match(new RegExp(grabSQLKeyName({ type: "user" })))
) {
continue;
}
const { User, Host, ssl_type } = user;
if (ssl_type === "ANY") {
continue;
}
const [addUserSSL] = await CONNECTION.query(
`ALTER USER '${User}'@'${Host}'`
);
console.log(`addUserSSL => ${User}@${Host}`, addUserSSL);
}
} catch (error: any) {
console.log("Error =\u003e", error.message);
} finally {
await CONNECTION?.end();
process.exit();
}
})();