Linux 上 SQLAdmin 权限配置指南
一 概念与准备
- 在 Linux 环境中,SQLAdmin通常指用于管理数据库的管理员账户(也可指 Web 管理工具 phpMyAdmin 的俗称)。以下分别给出在 MySQL/MariaDB 与 PostgreSQL 中创建并授予 sqladmin 权限的做法,以及常见 Linux 发行版的网络与 SELinux 配置要点。
- 准备要点:
- 已安装并运行数据库服务(如 MySQL/MariaDB 或 PostgreSQL)。
- 具备 root 或同等权限的数据库账户。
- 明确访问来源(仅本机、内网或公网),并按需配置防火墙与 SELinux。
二 MySQL 或 MariaDB 配置 sqladmin 权限
- 登录数据库并创建管理员账户(示例创建本地与远程两类账户):
- 本地管理:
- CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘YourStrongP@ssw0rd’;
- GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
- 远程管理(按需开放):
- CREATE USER ‘sqladmin’@‘%’ IDENTIFIED BY ‘YourStrongP@ssw0rd’;
- GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘%’ WITH GRANT OPTION;
- 使权限生效:FLUSH PRIVILEGES;
- 防火墙放行数据库端口(以 3306 为例):
- CentOS(firewalld):
- sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
- sudo firewall-cmd --reload
- Ubuntu(UFW):
- SELinux 与连接方式(仅当通过 Web 服务连接数据库时考虑):
- 若 Web 服务为 httpd,允许其连接数据库:sudo setsebool -P httpd_can_network_connect_db 1
- 安全建议:
- 避免使用 ‘%’ 通配来源,优先限定为内网网段(如 ‘sqladmin’@‘192.168.1.%’)。
- 遵循最小权限原则,生产环境谨慎授予 WITH GRANT OPTION;必要时按库/表细化授权。
三 PostgreSQL 配置 sqladmin 权限
- 登录数据库并创建管理员角色(示例赋予超级用户能力,生产环境请谨慎):
- sudo -u postgres psql
- CREATE USER sqladmin WITH PASSWORD ‘YourStrongP@ssw0rd’ LOGIN SUPERUSER CREATEDB CREATEROLE INHERIT;
- 或按需收紧权限(示例仅授予对默认库与 public 模式的管理能力):
- ALTER USER sqladmin CREATEDB;
- GRANT ALL PRIVILEGES ON DATABASE postgres TO sqladmin;
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO sqladmin;
- GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO sqladmin;
- 防火墙放行数据库端口(以 5432 为例):
- CentOS(firewalld):
- sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp
- sudo firewall-cmd --reload
- Ubuntu(UFW):
- 安全建议:
- 不建议对日常运维账户授予 SUPERUSER;按需使用 CREATEDB/CREATEROLE 并细化到具体库/模式/表。
四 若指的是 phpMyAdmin 的 SQLAdmin 账户
- 创建数据库管理员账户(同上),并在 phpMyAdmin 的配置文件(如 config.inc.php)中设置连接参数:
- $cfg[‘Servers’][$i][‘host’] = ‘localhost’;
- $cfg[‘Servers’][$i][‘user’] = ‘sqladmin’;
- $cfg[‘Servers’][$i][‘password’] = ‘YourStrongP@ssw0rd’;
- $cfg[‘Servers’][$i][‘auth_type’] = ‘config’;
- 访问方式:在浏览器打开 http://服务器IP/phpmyadmin,使用 sqladmin 登录。
- 安全建议:
- 避免在生产环境使用 auth_type=config 明文保存口令,可改用 cookie 或 http 认证。
- 限制 phpMyAdmin 的访问来源(如仅内网),并启用 HTTPS/TLS 加密。