温馨提示×

centos系统sqladmin权限申请流程

小樊
43
2025-12-07 18:54:23
栏目: 云计算

CentOS 系统 sqladmin 权限申请流程

一 流程总览与前置准备

  • 明确需求范围:仅管理某个业务库,还是全库管理;是否允许远程连接;是否需要WITH GRANT OPTION(授权他人)。
  • 准备信息:目标数据库类型(MySQL/MariaDBPostgreSQL)、服务端口(MySQL 默认 3306、PostgreSQL 默认 5432)、申请人工号/邮箱、有效期、变更原因与回退方案。
  • 账号前置:确保有具备管理员权限的数据库账号(如 rootpostgres)及 sudo 权限的 CentOS 账号,用于执行授权与系统配置。
  • 安全基线:准备强密码、限制来源 IP、规划是否启用 SSL/TLS 与审计策略。

二 MySQL MariaDB 申请与实施步骤

  • 申请与审批
    • 提交工单/邮件,包含:申请项(创建用户/授权范围/来源 IP/是否远程/是否 WITH GRANT OPTION/有效期)、风险与回退方案、申请人及主管审批链。
  • 实施(DBA/运维)
    • 登录数据库:mysql -u root -p
    • 创建用户(示例为本地管理某库;远程将 localhost 改为 % 或指定 IP
      • 仅管理指定库:CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘StrongPass!23’;
      • 全库管理:CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘StrongPass!23’;
    • 授权
      • 仅管理指定库:GRANT ALL PRIVILEGES ON mydb.* TO ‘sqladmin’@‘localhost’;
      • 全库管理:GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
    • 使权限生效:FLUSH PRIVILEGES;
    • 远程访问(如需要)
      • 开放防火墙:firewall-cmd --permanent --zone=public --add-port=3306/tcp && firewall-cmd --reload
      • 如启用 SELinux:setsebool -P httpd_can_network_connect_db 1
  • 验证
    • 本地:mysql -u sqladmin -p -h 127.0.0.1
    • 远程:mysql -u sqladmin -p -h <服务器IP>
    • 查看权限:SHOW GRANTS FOR ‘sqladmin’@‘localhost’;
  • 回退
    • 回收:REVOKE ALL PRIVILEGES ON . FROM ‘sqladmin’@‘localhost’; DROP USER ‘sqladmin’@‘localhost’; FLUSH PRIVILEGES;
    • 关闭端口:firewall-cmd --permanent --remove-port=3306/tcp && firewall-cmd --reload。

三 PostgreSQL 申请与实施步骤

  • 申请与审批:同 MySQL 前置要求,明确库级/实例级权限、来源 IP、有效期与审批链。
  • 实施(DBA/运维)
    • 本地切换用户:sudo -u postgres psql
    • 创建用户与数据库(示例)
      • 创建用户:CREATE USER sqladmin WITH PASSWORD ‘StrongPass!23’;
      • 创建库:CREATE DATABASE mydb OWNER sqladmin;
    • 授权
      • 库级:GRANT ALL PRIVILEGES ON DATABASE mydb TO sqladmin;
      • 表级(按需):GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO sqladmin;
    • 远程访问(如需要)
      • 编辑 pg_hba.conf 增加:host mydb sqladmin <来源IP>/32 md5(或 scram-sha-256)
      • 编辑 postgresql.conf:listen_addresses=‘*’(或指定内网地址),port=5432
      • 重启或热加载:systemctl reload postgresql 或 SELECT pg_reload_conf();
  • 验证
    • psql -h <服务器IP> -U sqladmin -d mydb
    • 查看权限:\dp
  • 回退
    • REVOKE ALL PRIVILEGES ON DATABASE mydb FROM sqladmin; DROP USER sqladmin;
    • 恢复 pg_hba.confpostgresql.conf 并 reload。

四 安全与合规要求

  • 最小权限:优先授予库级/表级权限,避免不必要的 . ALL PRIVILEGESWITH GRANT OPTION;按项目周期设置有效期定期复核
  • 来源限制:仅放通内网/跳板机网段;变更窗口内临时放通,结束后立即收敛。
  • 传输加密:启用 SSL/TLS 连接,禁用明文密码登录;证书与密钥纳入配置管理。
  • 密码与密钥:使用强密码并定期更换;密钥登录遵循最小权限与轮换策略。
  • 审计与留痕:开启数据库通用查询日志/审计日志(或堡垒机审计),保留至少90天;变更前后导出权限清单对比。
  • 防火墙与 SELinux:仅开放必要端口(3306/5432);SELinux 处于 enforcing 时按需放行数据库网络访问。

五 常用命令速查

  • MySQL/MariaDB
    • 创建用户:CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘StrongPass!23’;
    • 授权库级:GRANT ALL PRIVILEGES ON mydb.* TO ‘sqladmin’@‘localhost’;
    • 授权全库:GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
    • 刷新权限:FLUSH PRIVILEGES;
    • 查看权限:SHOW GRANTS FOR ‘sqladmin’@‘localhost’;
    • 回收与删除:REVOKE ALL PRIVILEGES ON . FROM ‘sqladmin’@‘localhost’; DROP USER ‘sqladmin’@‘localhost’;
    • 防火墙:firewall-cmd --permanent --zone=public --add-port=3306/tcp && firewall-cmd --reload
  • PostgreSQL
    • 创建用户:CREATE USER sqladmin WITH PASSWORD ‘StrongPass!23’;
    • 创建库:CREATE DATABASE mydb OWNER sqladmin;
    • 授权库级:GRANT ALL PRIVILEGES ON DATABASE mydb TO sqladmin;
    • 授权表级:GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO sqladmin;
    • 查看权限:\dp
    • 重载配置:SELECT pg_reload_conf();

0