postgresql - Ansible 创建可以访问所有表的 postgresql 用户?

标签 postgresql ansible

这应该很简单。我想创建一个 Ansible 语句来创建一个 Postgres 用户,该用户对特定数据库具有连接权限,并对该特定数据库中的所有表具有选择/插入/更新/删除权限。我尝试了以下方法:

  - name: Create postgres user for my app
    become: yes
    become_user: postgres
    postgresql_user:
      db: "mydatabase"
      name: "myappuser"
      password: "supersecretpassword"
      priv: CONNECT/ALL:SELECT,INSERT,UPDATE,DELETE

我得到 relation\"ALL\"does not exist

如果我删除 ALL:,我会得到 Invalid privs specified for database: INSERT UPDATE SELECT DELETE

最佳答案

我要做的是先创建用户,然后单独授予权限。它就像一个魅力。

 - name: Create postgres user for my app
    become: yes
    become_user: postgres
    postgresql_user:
      name: "myappuser"
      password: "supersecretpassword"

  - name: Ensure we have access from the new user
    become: yes
    become_user: postgres
    postgresql_privs:
      db: mydatabase
      role: myappuser
      objs: ALL_IN_SCHEMA
      privs: SELECT,INSERT,UPDATE,DELETE

关于postgresql - Ansible 创建可以访问所有表的 postgresql 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40290837/

相关文章:

ssl - Ansible,如何信任证书?

hibernate - 导致多对多关系不创建预期表

python - postgres 数据库 View 上的 Flask Admin

sql - 如何使用 SQL 从数据库中获取键值对

sql - 只读用户可以创建表

django - 层次结构数据的单表或多表

azure - 使用 Ansible Playbook 安装 AKS 时出现错误 Unsupported kubernetes version

ansible - 防止 Ansible 2 中出现重复的键警告

python - Ansible 字典/哈希键作为特殊变量

python - ansible 条件模板