我创建了一个连接postgres
并执行各种查询的后端 api。
我为该后端 api创建了一个特定用户(角色 + 可以登录权限):
backend_api_user
我还放弃了公共模式,转而支持后端 api 使用的新模式:
apischema
为了避免必须为后端 api 所做的每个查询添加前缀,我更改了搜索路径,如下所示:
ALTER ROLE backend_api_user SET search_path TO apischema;
问题是我需要在后端 api 查询中为表的引用添加前缀。因此,即使从 postgres 的角度来看它看起来还不错,有些东西也不起作用:
SELECT usename, useconfig FROM pg_user WHERE usename='backend_api_user'
用户名 | 使用配置 |
---|---|
backend_api_user | {search_path=apischema} |
旁注:我正在使用 postgres 和 pgadmin4。两者都是我使用 docker desktop for mac 运行的 docker 容器。
太感谢了。
它仅适用于您运行后
ALTER ROLE
建立的连接,因此请重新启动应用程序。此外,该设置仅适用于连接backend_api_user
本身 - 角色的成员身份是不够的。创建
backend_api_user
角色时,我刚刚添加了以下授权但是
postgres
,在表上授予特权并不意味着您在架构上有一些特权。并且backend_api_user
没有任何赠款apischema
,尤其是USAGE
赠款……最终,这个单线完成了这项工作。