Postgresql2用户在特定模式上具有不同的权限



我有一个带有公共模式的postgresql11数据库。我有一个角色user1,它拥有schema public的所有权限。

我想做以下事情:

  • 创建一个模式"some_ schema">
  • 向用户1授予只读特权;some_ schema">
  • 创建对模式具有所有特权的角色user2";some_schema">

我尝试了以下操作:

CREATE USER user2 WITH PASSWORD '***';
CREATE schema "some_schema";
GRANT CONNECT ON DATABASE user1 TO some_schema;
GRANT USAGE ON SCHEMA some_schema TO user1;
GRANT ALL ON SCHEMA some_schema to user2;
ALTER DEFAULT PRIVILEGES IN SCHEMA some_schema GRANT SELECT ON TABLES TO user1;

这不起作用,因为当我像这样登录时;测试";表并选择;关系"some_schema.test"不存在":

创建表some_shema.test(id int(;\q

psql-U user1;从some_schema.test中选择*;

结果=>关系some_schema.test不存在。

我还更改了pg_hba.conf,使两个用户都可以访问新模式,并重新启动了服务器。我试着阅读了文档和很多东西,但都没有成功。也许是我连接数据库的方式?

谢谢。

谢谢@JGH,就这样。:用户2必须允许自己访问用户1来架构some_shema。我做了什么:

psql
CREATE USER user2 WITH PASSWORD '***';
c my_database
CREATE SCHEMA some_schema AUTHORIZATION user2;
c my_database user2
create table some_schema.test(id int);
insert into some_schema.t(100);
GRANT USAGE ON SCHEMA some_schema TO user1;
GRANT SELECT ON ALL TABLES IN SCHEMA some_schema TO user1;
ALTER DEFAULT PRIVILEGES IN SCHEMA some_schema GRANT SELECT ON TABLES TO user1;

然后:

c my_database user1
select * from some_schema.t;

=>显示结果100:(

相关内容

  • 没有找到相关文章

最新更新