sql-mask is a tool to mask literal in SQL queries. sql-mask support MySQL and PostgreSQL.
go get -u github.com/Komei22/sql-mask
package main
import (
"fmt"
"github.com/Komei22/sql-mask"
)
func main() {
query := "SELECT * FROM `user` WHERE `id` = 1"
m := &masker.MysqlMasker{}
queryDigest, err := masker.Mask(m, query)
if err != nil {
panic(err)
}
fmt.Println(queryDigest)
}Running will output the query digest which is masked the literal value of input MySQL query:
$ go run main.go
SELECT * FROM `user` WHERE `id` = ?package main
import (
"fmt"
"github.com/Komei22/sql-mask"
)
func main() {
query := `SELECT * FROM "user" WHERE "id" = 1`
m := &masker.PgMasker{}
queryDigest, err := masker.Mask(m, query)
if err != nil {
panic(err)
}
fmt.Println(queryDigest)
}Running will output the query digest which is masked the literal value of input PostgreSQL query:
$ go run main.go
SELECT * FROM "user" WHERE "id" = ?