Azure PostgreSQL -如何创建管理员用户

slhcrj9b  于 2023-05-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(225)

我们使用Azure Database for PostgreSQL灵活服务器。我的要求是创建管理员用户,应该能够在整个数据库中的任何模式中的任何表(DDL/Alter等),无论哪个用户创建了该表,函数,过程或序列等。
我尝试根据Azure Docs创建管理员用户:
您的服务器管理员用户是azure_pg_admin角色的成员。但是,服务器管理员帐户不是azure_superuser角色的一部分。由于此服务是托管PaaS服务,因此只有Microsoft是超级用户角色的一部分。

  1. CREATE USER <new_user> CREATEDB CREATEROLE PASSWORD '<StrongPassword!>';
  2. GRANT azure_pg_admin TO <new_user>;

我创建了一个名为test_admin的用户,并按照文档所述授予其azure_pg_admin角色。使用另一个普通用户,我登录并创建了一个表,test_admin无法查询它,并得到以下错误:

  1. permission denied for table

即使test_adminazure_pg_admin
有人能帮我吗?

brjng4g3

brjng4g31#

根据MS Document
admin用户是您在服务器上拥有的最高权限用户。它属于azure_pg_admin角色。此角色没有完全超级用户权限。
AFAIK,它不具有对所有架构中的所有表执行所有操作所需的所有权限,因此azure_pg_admin角色不可用。要查询每个模式或aver数据库中的任何表,您需要显式地提供它。它是Azure Database for PostgreSQL中的内置角色,提供管理服务器的管理权限。

授予权限的psql命令:

  1. --grant permission on particular database level permissions.
  2. GRANT ALL PRIVILEGES ON DATABASE DB_name TO User_name;
  3. --grant permission on all tables of schema.
  4. GRANT SELECT ON ALL TABLES IN SCHEMA Schema_name TO User_name;

相关问题