如何在 PostgreSQL 中的当前数据库上授予连接和创建权限?

Dev*_*she 4 postgresql permissions

查看文档后,我知道您可以使用以下命令授予连接和创建权限:

GRANT CREATE ON DATABASE <db_name> TO user;
GRANT CONNECT ON DATABASE <db_name> TO user;
Run Code Online (Sandbox Code Playgroud)

如何在不指定数据库名称的情况下授予当前数据库的这些权限?

我正在尝试编写一个脚本,每当我的应用程序创建新数据库时,该脚本将用于授予所有权限,因此我不知道编写脚本时的名称是什么。

小智 9

您可以使用DO带有动态 SQL 的块:

do 
$$ 
begin
  execute format('grant create, connect on database %I to %I', current_database(), 'some_user');
end;
$$;
Run Code Online (Sandbox Code Playgroud)