Bitsmiths 审计产品
项目描述
BITSMITHS审计
这是第二层基础/核心 Bitsmiths python 库。该产品的目的是为产品中的任何表或对象提供字段级别的行审计。
该审计产品被我们自己的开源产品以及需要详细审计的商业产品使用。好消息是,如果您正在使用任何 Bitsmiths 产品,那么您的项目中已经有了一个可以运行的审计解决方案。
注意,我们将生成的 Mettle 代码打包在这个包中,也就是说这个模块需要的 Mettle 版本很重要。
表格和设置
Audit旨在使用具有audit. 您将需要自己创建此数据库模式。它还需要四个关系数据库表。
该包提供了创建这些表的 SQL 代码。有两种方法可以访问表创建 SQL。
- 您可以
bs-audit -g postgresql在命令行运行,这会将所有 SQL 打印到stdout. - 您可以导入 bs_audit 模块并获取 SQL,如下所示:
import bs_audit
print(bs_audit.get_table_sql('postgresql'))
笔记!目前只有postgresql SQL 被添加到包中。如果您希望我们支持另一个数据库,请告诉我们,我们会将其放入开发管道中。
库对象
这些是审核产品中的对象,并对其预期目的进行了简短描述。
审计
Audit类(以及异步代码的AuditAsync对应部分)是使用审计产品的方法。每次对表进行插入、更新或删除时,都可以选择使用此类来审核该表。
该对象有几个假设Audit:
- 您正在审核一个继承自
mettle.io.ISerializable. 这是因为审计将使用该_deserialize()方法来读取对象字段。 - 审计对象的名称已输入到
audit.cfg表中。 - 您还在某种AutoTransaction 中使用审核对象 - 请参阅 bitsmiths-lib.AutoTransaction。
以下是预期用途的示例:
- 我们假设 Pod 对象包含该对象的一个实例
Audit。 - 我们假设 Pod 对象包含一个数据库连接的实例。
- 我们假设这
brec是某种类型的勇气表记录。 - 我们假设 pod 中已经配置了用户标识符,并且
Audit.cfg表已经配置为使用该modified_by列。
import copy
from mettle.lib import AutoTransaction
def save_bank_record(self, brec: tBank):
with AutoTransaction(self.pod.audit, self.pod) as at:
bank_tbl = self.pod.dao.dBank(self.pod.dbcon)
brec.modified_by = self.pod.usr_id
if bank_tbl.try_select_one_deft(brec.id):
orig = copy.copy(bank_tbl.rec)
bank_tbl.update(brec)
self.pod.audit.diff(orig, bank_tbl.rec) # audits the difference between the original and new record
else:
bank_tbl.insert(brec)
self.pod.audit.diff(None, bank_tbl.rec) # audits a brand new record.
at.commit()
表表
这是一个简单的对象,旨在检查表更改的时间间隔。如果表有行更改,您可能希望实现更新内部缓存或其他内容。假设您在对表行进行插入、更新或删除操作时都在使用Audit对象,否则它不会知道。
更改历史
2.2.2
| 类型 | 描述 |
|---|---|
| 使固定 | 修复了sqlpostgres 触发脚本的错误。 |
2.2.1
| 类型 | 描述 |
|---|---|
| 新的 | 升级到使用bitsmiths-mettle版本 2.2.3 |
2.2.0
| 类型 | 描述 |
|---|---|
| 打破 | 升级到使用bitsmiths-mettle版本 2.2.2 |
2.1.6
| 类型 | 描述 |
|---|---|
| 新的 | 实施审计自动触发器 |
| 新的 | 使用bitsmiths-mettle(2.1.14)中的新 python fetch 方法 |
| 打破 | 数据库所需的表更改和新触发器(参见version_2_1_6_upgrade.postgresql.sqlrepo) |
| 新的 | 实施了一项新功能,以更轻松地阅读审计跟踪。 |
审计跟踪查询/功能示例:
select * from audit.show_trail('{"config"}', null, '{"value"}', '2022-05-01', null, '{"U"}');
2.1.5
| 类型 | 描述 |
|---|---|
| 新的 | 从最新的勇气(2.1.13)版本实现了数据类功能。 |
2.1.4
| 类型 | 描述 |
|---|---|
| 漏洞 | 修复了 base_audit.search 方法中引发 SQL 异常的回归错误。 |
2.1.3
| 类型 | 描述 |
|---|---|
| 漏洞 | 在进行审计时强制截断长列值。 |
| 漏洞 | 列值的审计现在适用于派生的字典和列表类型。 |
2.1.0
| 类型 | 描述 |
|---|---|
| 打破 | 从triceraclops重命名为audit |
| 打破 | 将 dao 导入方法从 util.py 移至init .py。 |
| 新的 | 通过 PYPI 鼓起勇气,更新项目以适应勇气的新变化。 |
| 新的 | 您现在可以从包中读取数据库创建,还为此添加了一个入口点。 |
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
bitsmiths-audit-2.2.2.tar.gz
(30.1 kB
查看哈希)
内置分布
bitsmiths_audit-2.2.2-py3-none-any.whl
(77.4 kB
查看哈希)
关
bitsmiths_audit -2.2.2-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4d53eb96c48b0d471cae7f3f7a9cb766e650409039d952a12796f78021c1f1e3 |
|
| MD5 | 9f9d1011f37287b6e6bb9cb1f0ea86d4 |
|
| 布莱克2-256 | 99bd9514bdfab9c54f3cdb6048ea83bf34cf30a883eb4b913c52f8826dc9eaec |