在 PostgreSQL 中,当我在另一个数据库中时,如何才能GRANT USAGE在某个数据库中为某个用户提供某个模式?
first我以具有特权的用户身份连接到数据库(假设是数据库) CREATEDB。我想second为用户创建另一个数据库normal_user,并授予该用户公共模式的使用权。我可以CREATE DATABASE second;从当前连接的数据库执行此操作,但据我所知我不能执行此操作GRANT USAGE ON SCHEMA public TO normal_user;,因为这只会授予对public当前连接数据库中的架构的使用权限。
我想在单个 SQL 脚本中自动执行数据库创建、用户创建和权限授予。
我希望有一种巧妙的方法来做到这一点。我想这样做是为了自动化数据库和用户创建以及权限授予。我知道一些工具 Lime Ansible 或 Terraform可能有助于实现自动化。但我希望我们能够仅通过 Postgres 脚本来做到这一点。
我使用 AWS RDS 作为我的 Postgres,但我认为我没有办法通过 ssh 来从 cmd 行运行 Postgres 命令。我正在尝试从 dbeaver 脚本页面执行此操作。所以我认为 SQL 就是我要做这件事的全部。如果我可以使用 SQL 轻松切换用户或切换数据库,那就很有帮助。
经过思考,我认为使用psql -u user -p -h hostname我也许能够连接到实例并在 shell 中切换数据库。但如果我弄错了,请告诉我。