首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >授予Postgres中所有表的访问权限

授予Postgres中所有表的访问权限
EN

Stack Overflow用户
提问于 2020-09-07 12:32:18
回答 2查看 2.1K关注 0票数 0

如何将Postgres数据库中所有模式的所有表权限授予用户/角色?

下面的命令只授予特定的模式,而不是整个数据库。

代码语言:javascript
运行
复制
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO username;

例如,

数据库:测试模式: schema1,schema2内部测试表: schema1.table1,schema1.table2,schema2.table1,schema2.table2

如何向在数据库中找到的所有架构中找到的所有表提供所有表权限。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-07 12:48:59

您必须具有特定的架构。有关GRANT的更多用法,请参阅此处。另外,授予对象类型的所有可用权限。特权关键字在PostgreSQL中是可选的,尽管它是严格的SQL所必需的。

因此,基本上可以对所有表所属的特定模式使用all。

所以

代码语言:javascript
运行
复制
grant all on all tables in schema "schema_name" to user 

我应该为您做这件事,但是您需要指定模式名称。

有关更多信息,请参阅:link

票数 0
EN

Stack Overflow用户

发布于 2020-09-07 13:38:44

使用psql

代码语言:javascript
运行
复制
SELECT format(
          'GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA %I TO username;',
          nspname
       )
FROM pg_namespace
WHERE nspname NOT LIKE ANY
         (ARRAY['pg_catalog','information_schema','pg_temp%'])::name[]
\gexec

\gexec以SQL语句的形式执行查询结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63771399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档