Linux 环境下 SQLAdmin 权限管理
一 管理范围与总体原则
二 操作系统级 sqladmin 用户管理
sudo useradd -m -s /bin/bash sqladminsudo passwd sqladminsudo usermod -aG wheel sqladminsudo visudo,为 sqladmin 配置精确命令白名单(避免直接 ALL)chown -R mysql:mysql /var/lib/mysql;权限一般为 750chown root:mysql /etc/my.cnf;权限 640chown sqladmin:sqladmin /opt/backup && chmod 700 /opt/backupnofile、nproc 等上限journalctl -f -u mysqld三 数据库级 sqladmin 账户管理
CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY 'StrongPass!';GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'localhost' WITH GRANT OPTION;CREATE USER 'sqladmin'@'10.0.0.%' IDENTIFIED BY 'StrongPass!';GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'10.0.0.%' WITH GRANT OPTION;GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON mydb.* TO 'sqladmin'@'localhost';FLUSH PRIVILEGES;CREATE ROLE sqladmin WITH LOGIN PASSWORD 'StrongPass!' SUPERUSER CREATEDB CREATEROLE INHERIT;CREATE ROLE sqladmin WITH LOGIN PASSWORD 'StrongPass!' CREATEDB CREATEROLE INHERIT;GRANT 到具体数据库/模式/表,避免使用 SUPERUSERsudo firewall-cmd --permanent --add-port=3306/tcp && sudo firewall-cmd --reloadsudo firewall-cmd --permanent --add-port=5432/tcp && sudo firewall-cmd --reload四 常见场景与命令清单
CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY '...';GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'localhost' WITH GRANT OPTION;FLUSH PRIVILEGES;CREATE USER 'sqladmin'@'192.168.1.%' IDENTIFIED BY '...';GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'192.168.1.%' WITH GRANT OPTION;FLUSH PRIVILEGES;CREATE ROLE sqladmin WITH LOGIN PASSWORD '...' CREATEDB CREATEROLE INHERIT;GRANT ALL PRIVILEGES ON DATABASE mydb TO sqladmin;GRANTmysqldump -u sqladmin -p --single-transaction --routines --triggers --databases mydb > /opt/backup/mydb_$(date +%F).sqlmysql -u sqladmin -p < /opt/backup/mydb_2025-11-20.sql五 安全加固与审计要点