创建一个pg_dumpish输出,它屏蔽数据而不保存对源数据库的更改。

django-maskpostgresdata的Python项目详细描述


django掩码postgres数据

向django项目添加一个管理命令,该命令允许您创建(某种)pg_转储 你的敏感数据被屏蔽。

安装

使用pip安装:

pip install django-maskpostgresdata

并将maskpostgresdata添加到INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'maskpostgresdata',
    ...
]

用法

默认情况下,django-maskpostgresdata将用“password”替换djangoUser模型中每一行的password列。只要运行manage.py dump_masked_data,就会得到一个pg_转储,其中password字段对于所有用户都更改为“password”。

有两种方法可以定制django-maskpostgresdata的行为。

要使用给定值覆盖模型的各个字段,请使用以下格式将名为MASKER_FIELDS的字典添加到设置中:

MASKER_FIELDS = {
    "{ APP_NAME }": {"{ MODEL_NAME }": {"{ FIELD_NAME }": { VALUE },}},
}

或者,您可以通过在自己的管理命令中对BasePostgresDataMaskingCommand进行子类化来定义数据的更新方式。例如:

from django.contrib.auth.hashers import make_password

from maskpostgresdata import BasePostgresDataMaskingCommand


class Command(BasePostgresDataMaskingCommand):

    def update_auth_user(self, queryset):
        queryset.update(password=make_password("a_different_password"))

只需创建一个名为update_{ db_table_name }的方法,将queryset作为参数。然后可以对这个queryset执行update操作。{ db_table_name }默认为{app_label}_{model_name}格式,但在技术上可能有所不同。

然后您可以运行manage.py dump_masked_data,它会将您的数据转储到stdout

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像