温馨提示×

ubuntu sqladmin用户认证方式

小樊
44
2026-01-02 16:53:31
栏目: 云计算

Ubuntu 上 sqladmin 用户认证方式

一、概念澄清

  • 在 Ubuntu 语境中,sqladmin 通常指 phpMyAdmin(Web 方式的 MySQL/MariaDB 管理工具),也可能是某些第三方监控工具的包名。其“用户认证”包含两层:
    • Web 层的访问控制(谁来登录 phpMyAdmin)
    • 数据库层的账户认证(phpMyAdmin 用哪个数据库账号连 MySQL/MariaDB)

二、Web 层认证方式(以 phpMyAdmin 为例)

  • 基本认证(最常见)
    • 通过 Web 服务器的 HTTP 基本认证(如 Apache 的 htpasswd)保护 phpMyAdmin 目录;登录提示输入用户名/密码,凭证与数据库账户无关。
  • 基于表单的登录(内置)
    • phpMyAdmin 提供表单登录界面,使用你在 MySQL/MariaDB 中创建的数据库账户进行认证;登录成功后以该账户的权限操作。
  • 多用户与访问控制
    • 可创建多个数据库用户并授予不同权限,然后在 phpMyAdmin 中分别用这些账户登录;也可结合 Web 服务器层面的访问控制实现更细粒度的入口限制。

三、数据库层认证方式(MySQL/MariaDB 账户)

  • 常用插件与特点
    • caching_sha2_password:MySQL 8.0+ 的默认插件,安全性高;但部分旧版 PHP/客户端驱动可能存在兼容性问题。
    • mysql_native_password:传统插件,兼容性最好,适合与旧客户端/旧 PHP 搭配。
    • auth_socket(Unix 套接字):本地通过 sudo mysql 免密登录,安全性高但不支持远程;适合本机运维账户。
  • 切换与创建示例
    • 创建使用密码的账户(便于 phpMyAdmin 远程/表单登录):
      • CREATE USER ‘webadmin’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘StrongPass!’;
      • GRANT ALL PRIVILEGES ON dbname.* TO ‘webadmin’@‘localhost’;
      • FLUSH PRIVILEGES;
    • 将 root 从 socket 切换为密码(如需密码登录 CLI):
      • ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘StrongRootPass!’;
    • 将 root 改回 socket(如需保留 sudo mysql 免密本地登录):
      • ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH auth_socket;
  • 远程访问提示
    • 若 phpMyAdmin 与数据库不在同一主机,需确保数据库账户的主机为 ‘%’ 或具体来源网段,并开放 3306/tcp 防火墙端口(如使用 UFW:sudo ufw allow 3306/tcp)。

四、若指的是 Microsoft SQL Server on Ubuntu

  • 支持 Active Directory 集成认证(Kerberos):将 Ubuntu 上的 SQL Server 主机加入 AD 域,为服务创建 AD 账户与 SPN,配置 keytab,在 SQL Server 中创建基于 AD 的登录名,客户端可用域凭据无密码连接。

五、安全加固要点

  • 为 phpMyAdmin 启用 HTTPS(TLS),避免口令明文传输。
  • 仅允许必要来源 IP 访问 3306/tcp 与 Web 端口(如 80/443),并使用 UFW 等防火墙限制访问。
  • 禁用数据库 root 的远程登录,日常使用最小权限的专用账户;结合 Fail2Ban 降低暴力破解风险。

0