温馨提示×

如何配置Linux SQLAdmin权限

小樊
43
2025-11-30 03:17:43
栏目: 云计算

Linux 上 SQLAdmin 权限配置指南

一 概念与准备

  • 在 Linux 环境中,SQLAdmin通常指用于管理数据库的管理员账户(也可指 Web 管理工具 phpMyAdmin 的俗称)。以下分别给出在 MySQL/MariaDBPostgreSQL 中创建并授予 sqladmin 权限的做法,以及常见 Linux 发行版的网络与 SELinux 配置要点。
  • 准备要点:
    • 已安装并运行数据库服务(如 MySQL/MariaDBPostgreSQL)。
    • 具备 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):
      • sudo ufw allow 3306/tcp
  • 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):
      • sudo ufw allow 5432/tcp
  • 安全建议:
    • 不建议对日常运维账户授予 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 明文保存口令,可改用 cookiehttp 认证。
    • 限制 phpMyAdmin 的访问来源(如仅内网),并启用 HTTPS/TLS 加密。

0