我想用 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)
但它似乎也需要在命令行中以明文形式输入密码......