让search_path与Npgsql一起使用

时间:2013-05-16 06:55:20

标签: c# postgresql npgsql

为整个数据库或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成功进行查询。

1 个答案:

答案 0 :(得分:1)

重新启动IIS Express和PostgreSQL没有做任何事情,但重新启动我的机器后,我不再需要提供架构,但我不确定这三种方法中的哪一个实际上是这样做的。对于任何可能遇到这种情况的人来说都是如此。