将 db.* 的所有权限授予用户?

grant all privileges on db.* to user?

(select version() PostgreSQL 11.6, Visual C++ build 1800, 64-bit 编译)

我创建了一个新用户:

create user bob with password 'some_password_string';

我在一个名为 'GoogleData' 的数据库中:

grant all privileges on GoogleData to bob;

SQL Error [42P01]: ERROR: relation "googledata" does not exist

我可以通过指定 schema.table 将 bob 添加到 GoogleData 中的特定表,例如

grant all privileges on reporting.ecom_dashboard to bob;

这行得通,只是表太多,无法一一授予访问权限。我也无法授予对 public.

的访问权限

尝试过:

grant all privileges on public to bob;
SQL Error [42P01]: ERROR: relation "public" does not exist

尝试像这样迭代特定的模式:

grant all privileges on reporting.* to bob;
SQL Error [42601]: ERROR: syntax error at or near "to"
  Position: 46
  1. 如何在数据库级别将所有权限授予 Bob?当我尝试时出现错误 'ERROR: relation "googledata" does not exist'(其中 googledata 是有问题的数据库)
  2. 鉴于我似乎无法在数据库级别授予访问权限,我如何才能在模式级别授予 bob 权限grant all privileges on schema_name.* to bob;

how can I grant bob privileges at the schema level

您正在寻找选项on all tables in schema

grant all privileges on all tables in schema public to bob;
grant all privileges on all tables in schema reporting to bob;

您可能还想 change the default privileges 以便这也适用于将来创建的表。