使用Postgres数据库时会调用什么函数

问题描述 投票:0回答:2

我需要在Postgres(TDE)中实现透明加密。为此,我发现在触发INSERT和SELECT时调用了哪些函数。在SELECT上使用了LLVM-LLDB。

我正在尝试使用INSERT做同样的事情-不起作用

基本进程停止,并且不允许插入。我所做的一切都是关于一本手册https://eax.me/lldb/

可能出什么事了?如何找出插入时调用了哪些函数(在SELECT的情况下,这是secure_read等)?而且,如果有人知道如何在源代码中更改功能代码?

首先,客户端和服务器位于同一台计算机上,同一用户添加数据并读取它们

很遗憾,我没有足够的声誉来添加屏幕截图。

postgresql ubuntu debugging
2个回答
1
投票

SQL语句启动调试的级别错误。您应该查看读取和写入块的代码。那将是src/backend/storage/smgr。查看mdread中的mdwritemd.c功能。这可能是您开始黑客攻击的地方。

PostgreSQL v12引入了“可插入存储”,因此您可以编写自己的存储管理器。参见the documentation。如果您不想打补丁PostgreSQL,但是想拥有一个可以与标准PostgreSQL一起使用的扩展名,那将是您的选择。


0
投票

这是一个复杂的问题,您应该发布到PostgreSQL黑客分发列表https://www.postgresql.org/list/pgsql-hackers/

您可以通过在Executor_Start in execMain.c中设置GDB断点开始>

© www.soinside.com 2019 - 2024. All rights reserved.