0

我想用 pyGQIS 在 QGIS 3.16 中打开一个 postgreSQL 表。

我找到了执行此操作的 QgsDataSourceUri.setConnection 方法。我的问题是数据库密码是用明文写的。例如,如果我将代码放在 Github 或 FramaGit 上……这将是一个可怕的安全漏洞。

我找到了 authConfigId 参数,它让我可以使用 QGIS 身份验证数据库。它更加安全,并且是解决方案的一部分。

这是我现在的代码:

self.uri = QgsDataSourceURI()
self.uri.setConnection("192.168.x.xx", "port", "bdd", "user", "passwordIDontWantToGive")

或者

 self.uri = QgsDataSourceURI()
 self.uri.setConnection("192.168.x.xx", "port", "bdd", authConfigId = 'xxx')

但是我从 QGIS 到 postgreSQL 数据库的连接是使用.pg_service.conf文件进行的。您知道如何使用该类型的连接管理 URI 连接命令吗?

感谢提前

注意:我发现这种使用服务文件访问 postgreSQL 表的方法:

uri = QgsDataSourceUri()
if service:
    uri.setConnection(service, db, username, password, sslmode)
  

但它似乎也需要在命令行中以明文形式输入密码......

4

0 回答 0