在数据库中查找PII数据
piicatcher的Python项目详细描述
MySQL的PII Catcher,PostgreSQL&AWS红移
概述
Piicatcher在数据库中查找PII数据。它扫描你的 数据库并查找以下类型的PII信息:
- 电话
- 电子邮件
- 信用卡
- 地址
- 个人
- 位置
Piicatcher使用两种扫描仪来检测PII信息:
- CommonRegex使用一组正则表达式 对于常见类型的信息
- Spacy Named Entity Recognition 使用自然语言处理来检测命名实体。目前只支持英语。
Piicatcher支持以下数据库:
- sqlite3v3.24.0或更高版本
- mysql5.6或更高版本
- postgresql9.4或更高版本
- aws红移
安装
piicatcher可用作命令行应用程序。
要安装,请使用pip:
python3 -m venv .env
source .env/bin/activate
pip install piicatcher
或者克隆回购协议:
git clone https://github.com/vrajat/piicatcher.git
python3 -m venv .env
source .env/bin/activate
python setup.py install
安装Spacy语言模型
python -m spacy download en_core_web_sm
用法
# Print usage
$ piicatcher -h
usage: piicatcher [-h] -s HOST [-u USER] [-p PASSWORD] [-t {sqlite,mysql}]
[-o OUTPUT] [-f {ascii_table}]
optional arguments:
-h, --help show this help message and exit
-s HOST, --host HOST Hostname of the database. File path if it is SQLite
-u USER, --user USER Username to connect database
-p PASSWORD, --password PASSWORD
Password of the user
-t {sqlite,mysql}, --connection-type {sqlite,mysql}
Type of database
-o OUTPUT, --output OUTPUT
File path for report. If not specified, then report is
printed to sys.stdout
-f {ascii_table}, --output-format {ascii_table}
Choose output format type
示例
# run piicatcher on a sqlite db and print report to console
piicatcher -c '/db/sqlqb'
╭─────────────┬─────────────┬─────────────┬─────────────╮
│ schema │ table │ column │ has_pii │
├─────────────┼─────────────┼─────────────┼─────────────┤
│ main │ full_pii │ a │ 1 │
│ main │ full_pii │ b │ 1 │
│ main │ no_pii │ a │ 0 │
│ main │ no_pii │ b │ 0 │
│ main │ partial_pii │ a │ 1 │
│ main │ partial_pii │ b │ 0 │
╰─────────────┴─────────────┴─────────────┴─────────────╯