获取与Npgsql一起工作的搜索路径

本文关键字:搜索 路径 工作 一起 Npgsql 获取 | 更新日期: 2023-09-27 18:13:55

在整个数据库或PostgreSQL中的模式上为特定用户设置search_path的合适方法是什么,以便通过Npgsql工作?

以用户reader为例。

我已经尝试通过

在数据库本身设置reader's搜索路径
alter default privileges in schema auth grant select on tables to reader;

我试过在postgresql.conf文件(search_path = 'auth')中设置它。

我试过在connectionString节点(...;searchpath=auth;...)的web.config文件中设置它。

这些似乎都不起作用。当我试图使用我的连接访问一个名为users的表时,我得到了错误

ERROR: 42P01: relation "users" does not exist

如果我指定模式(e.g. "select * from auth.users ..."),那么它将工作。

(实际上在这一点上,我得到了错误ERROR: 42501: permission denied for schema auth1,这是我必须解决的下一个问题,但搜索路径问题似乎已解决)。

那么,在使用Npgsql时,我需要做些什么来为特定用户设置搜索路径呢?

注意:我正在使用dapper dot net,可以成功地与我的超级用户postgres进行查询。

获取与Npgsql一起工作的搜索路径

重新启动IIS Express和PostgreSQL没有做任何事情,但是在重新启动我的机器之后,我不再需要提供模式,尽管我不确定这三种方法中的哪一种实际上做到了这一点。给任何可能遇到这个的人。