如何向数据库中的所有表授予某些权限?

发布于 2024-12-02 13:29:24 字数 168 浏览 0 评论 0原文

我需要类似于 postgresql 8.4 中 mysql 的 GRANT SELECT ON db.* TO user 的东西。我在网上找到的解决方案使用 for 循环一次选择表并授予它们权限。但这意味着每次将新表添加到数据库时我都必须重新运行该命令。

有没有更直接的解决方案?

I need something similar to mysql's GRANT SELECT ON db.* TO user in postgresql 8.4. The solutions I find online use a for loop to select tables on at a time and grant privileges on them. But that would mean I would have to rerun the command every time a new table is added to the database.

Is there a more straightforward solution to this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

握住你手 2024-12-09 13:29:24

假设您没有定义任何特定的模式,您的所有表都将位于“公共”模式中,因此您可以说:

GRANT <permissions> ON ALL TABLES IN SCHEMA public TO <roles>;

这仅适用于 9.0 或更高版本,因此您在 8.4 中运气不佳。

另请参阅:http://www.postgresql.org/docs/8.4/静态/ddl-schemas.html

Assuming you don't have any specific schemas defined, all your tables will be in the 'public' schema, so you can say:

GRANT <permissions> ON ALL TABLES IN SCHEMA public TO <roles>;

This only works on 9.0 or above though, so you're out of luck in 8.4.

See also: http://www.postgresql.org/docs/8.4/static/ddl-schemas.html

魂归处 2024-12-09 13:29:24

请注意,通常将某个用户的权限授予另一个用户同样有意义或更有意义,并且更容易跟踪。

create user dbuser9;
create database test9 with owner dbuser9;
\c test9 dbuser9
create a bunch of stuff...
\c postgres postgres
grant dbuser9 to stan;

Note that often granting a certain user's rights to another user makes as much or more sense and is easier to keep track of.

create user dbuser9;
create database test9 with owner dbuser9;
\c test9 dbuser9
create a bunch of stuff...
\c postgres postgres
grant dbuser9 to stan;
心凉怎暖 2024-12-09 13:29:24

默认权限随版本 9.0 一起提供,在旧版本中不可用。

您可以创建一个循环遍历所有表并设置权限的存储过程。

Default privileges came with version 9.0, it's not available in older versions.

You can create a stored procedure that loops through all tables and sets the privileges.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文