我需要在 Ubuntu 上为 postgresql 编写一个扩展,它将提供透明数据加密 (TDE)。有一个想法是将您的模块添加到源代码和/或单独修改它们,然后构建所有内容。我按照说明从源代码https://eax.me/postgresql-build/构建。在 configure script flags中,我./configure --help
发现了以下内容:
和
问题:这些是应该使用的标志吗?如果是,扩展文件应该采用什么形式以及它们应该位于哪里?
我需要在 Ubuntu 上为 postgresql 编写一个扩展,它将提供透明数据加密 (TDE)。有一个想法是将您的模块添加到源代码和/或单独修改它们,然后构建所有内容。我按照说明从源代码https://eax.me/postgresql-build/构建。在 configure script flags中,我./configure --help
发现了以下内容:
和
问题:这些是应该使用的标志吗?如果是,扩展文件应该采用什么形式以及它们应该位于哪里?
首先,您需要确定是否可以在扩展的帮助下完全实现您的计划,或者您是否需要以不兼容的方式更改基础的主要代码 - 然后这已经是一个补丁,但是不是扩展。
要做到这一点,实际上要找出你需要在数据库的行为中改变什么,数据库是否在这些地方提供了必要的灵活性。在 PostgreSQL 中,扩展可以做很多事情,但不是全部。
如果扩展能力足够
您不接触 postgresql 源代码,并且您根本没有义务从源代码构建数据库。
pg_config
您将需要基础文件提供的头文件和实用程序。您可以在任何地方通过调用来描述您的。后者将为您提供所有必要的路径。然后您编写代码,其他扩展包装(从基本源代码树中查找示例),然后简单并且您的扩展安装在正确的位置并可供基本输入和相关设置使用。
Makefile
pg_config
contrib/
make
make install
create extension
如果扩展不够
然后你直接在 postgresql 源代码树中工作,直接修改基础代码。然后你像往常一样组装,就好像你没有改变代码中的任何东西一样,
./configure
并在列表的下方。关于实施 - 取决于您到底想要做什么。从这里开始,这是关于 postgresql 中 TDE 实现的最新讨论。很可能,扩展选项是不够的。