pgAdmin 4 引入了主密码以保护和稍后解锁保存的服务器密码。通过保存密码或保存 SSH 隧道密码选项保存在 SQLite DB 文件中的任何密码(用于存储用户首选项和其他数据)都将使用主密码进行加密和解密。
该功能是在 pgAdmin 4 版本 4.7 及更高版本中引入的。这适用于桌面模式用户以及 OAuth、Kerberos 或 Web 服务器等身份验证方法,其中 pgAdmin 无法访问任何长期存在的内容以形成加密密钥,而使用 pgAdmin 内部或 LDAP 身份验证方法,用户的登录密码用作加密密钥。
注意:主密码不存储在物理存储的任何位置。它临时存储在应用程序内存中,并且在应用程序重新启动时不会保存。
为什么 pgAdmin 4 引入主密码?
如果用户选择这样做,pgAdmin 可以将加密的 PostgreSQL 服务器密码存储在本地 SQLite 数据库中。主密码用作存储密码的加密密钥。
以前,pgAdmin 使用存储在同一个 SQLite 数据库中的密钥来加密/解密所有保存的密码。结果是攻击者或恶意软件可能会扫描 PostgreSQL 服务器凭据和密钥,找出如何解密它们并获得对数据库服务器的访问权限。
pgAdmin 4 在启动时要求输入主密码
设置您选择的密码以保护并稍后解锁所有密码。

注意:设置主密码后,所有现有保存的密码都将使用主密码重新加密。
如果您已经设置了主密码,请输入并单击“确定”。

重置主密码
如果您忘记了主密码,您可以使用重置主密码按钮来重置密码。

警告:重置主密码也将删除所有已保存的密码并关闭所有现有的已建立连接。
禁用主密码
pgAdmin 旨在默认安全,但是您可以通过在config_local.py或config_system.py文件中设置配置参数MASTER_PASSWORD_REQUIRED = False来禁用主密码。有关更多信息,请参阅pgAdmin 文档。
注意:如果禁用主密码(不推荐),则保存的密码将使用不太安全的密钥加密,因为加密密钥和密码存储在同一个 SQLite 数据库中。
结论
如果您希望使用“保存密码”选项来保护您的密码免受攻击,强烈建议您使用主密码。
关于作者:
Akshay Joshi 是 EDB 的首席软件架构师。他于 2010 年加入,主要从事 PostgreSQL 监控工具的工作。自 2011 年以来,他一直积极参与 pgAdmin,他是核心提交者之一,也是 pgAdmin 开源项目的发布经理。他的专业领域包括...
文章来源:https://blog.dbi-services.com/oracle-21c-dealing-with-faststartfailoveractiononprecalloutfailure/




