debian

Debian中PostgreSQL权限管理怎么做

小樊
34
2025-08-06 04:45:20
栏目: 云计算

Debian中PostgreSQL权限管理主要通过角色、权限命令及配置文件实现,核心操作如下:

  1. 安装PostgreSQL

    sudo apt update && sudo apt install postgresql postgresql-contrib  
    
  2. 创建角色/用户

    # 创建可登录角色(用户)  
    CREATE ROLE username WITH LOGIN PASSWORD 'password';  
    # 或直接创建用户(自动关联角色)  
    CREATE USER username WITH PASSWORD 'password';  
    
  3. 分配权限

    • 数据库级别
      GRANT ALL PRIVILEGES ON DATABASE dbname TO username;  # 授予所有权限  
      REVOKE ALL PRIVILEGES ON DATABASE dbname FROM username;  # 撤销权限  
      
    • 表/列级别
      GRANT SELECT, INSERT ON TABLE tablename TO username;  # 授予表权限  
      GRANT SELECT(column1, column2) ON TABLE tablename TO username;  # 授予列权限  
      
    • 模式级别
      GRANT USAGE ON SCHEMA public TO username;  # 授予模式使用权限  
      
  4. 默认权限设置

    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO username;  # 新建表默认授SELECT权  
    
  5. 连接控制
    编辑 /etc/postgresql/version/main/pg_hba.conf,添加规则限制IP访问,例如:

    host all all 192.168.1.0/24 md5  # 允许指定IP段通过MD5密码认证连接  
    

    修改后需重启服务生效:

    sudo systemctl reload postgresql  
    
  6. 权限查看与管理

    • 查看用户权限:
      \du  # psql命令行查看角色列表及权限  
      SELECT * FROM pg_user WHERE usename='username';  # 查看用户详细信息  
      
    • 删除角色/用户:
      DROP ROLE username;  
      

注意:操作需在postgres用户下执行,或通过sudo -u postgres切换用户。部分命令需根据实际需求调整权限范围(如ALL PRIVILEGES可替换为具体权限组合)。

0
看了该问题的人还看了