为整个数据库或PostgreSQL中的模式设置特定用户的search_path
以使其通过 Npgsql 工作的适当方法是什么?
我们以我的用户reader
为例。
我尝试通过
在数据库中设置reader's
search_path
alter default privileges in schema auth grant select on tables to reader;
我已尝试在postgresql.conf
文件(search_path = 'auth'
)中设置它。
我已尝试在web.config
节点(connectionString
)的...;searchpath=auth;...
文件中进行设置。
这些似乎都不起作用。当我尝试使用我的连接访问名为users
的表时,我收到错误
ERROR: 42P01: relation "users" does not exist
如果我指定架构(e.g. "select * from auth.users ..."
),那么它将起作用。
(实际上此时我收到错误ERROR: 42501: permission denied for schema auth1
这是我必须解决的下一个问题,但是search_path问题似乎已经解决了。
那么在使用 Npgsql 时,我需要做些什么才能为特定用户设置search_path?
注意:我正在使用dapper dot net,可以与我的超级用户postgres
成功进行查询。
答案 0 :(得分:1)
重新启动IIS Express和PostgreSQL没有做任何事情,但重新启动我的机器后,我不再需要提供架构,但我不确定这三种方法中的哪一个实际上是这样做的。对于任何可能遇到这种情况的人来说都是如此。