SQLAdmin在CentOS上的用户认证与授权机制
导读:SQLAdmin在CentOS上的用户认证与授权机制 一 概念与总体架构 在CentOS环境中,SQLAdmin通常指用于管理数据库的账号(如MySQL/MariaDB的管理员用户)或基于Web的管理工具(如phpMyAdmin/MySQ...
SQLAdmin在CentOS上的用户认证与授权机制
一 概念与总体架构
- 在CentOS环境中,SQLAdmin通常指用于管理数据库的账号(如MySQL/MariaDB的管理员用户)或基于Web的管理工具(如phpMyAdmin/MySQL-Admin)。其认证与授权涉及三层:
- 操作系统层:对运行SQLAdmin的系统用户进行身份鉴别与权限控制(如 sudo 授权)。
- 数据库层:对数据库内的数据库用户进行认证(口令/插件)与授权(全局/库/表/列级权限)。
- 应用层(若使用Web管理工具):对Web登录进行认证,并通过数据库账号凭据代理到数据库执行操作。
二 数据库层的认证与授权 MySQL MariaDB
- 认证方式
- 本地登录常用口令认证;远程登录需确保网络可达与端口开放(默认3306),并为相应用户设置允许的来源主机(如**‘localhost’、‘%’**或具体IP)。
- 授权模型
- 基于账户主机(如**‘sqladmin’@‘localhost’)与权限粒度(全局ON *.*、库级ON db.*、表级、列级)进行授权;必要时可使用WITH GRANT OPTION**授予再授权能力。
- 常用操作范式
- 创建本地管理员并授予全局权限:
- CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
- GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
- FLUSH PRIVILEGES;
- 创建仅管理某库的账号:
- CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
- GRANT ALL PRIVILEGES ON mydb.* TO ‘sqladmin’@‘localhost’;
- FLUSH PRIVILEGES;
- 允许远程管理(限制来源更安全):
- CREATE USER ‘sqladmin’@‘192.168.1.%’ IDENTIFIED BY ‘StrongPass!’;
- GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘192.168.1.%’ WITH GRANT OPTION;
- FLUSH PRIVILEGES;
- 验证与审计:
- SHOW GRANTS FOR ‘sqladmin’@‘localhost’;
- 日志排查:/var/log/mysqld.log。
- 创建本地管理员并授予全局权限:
三 数据库层的认证与授权 PostgreSQL
- 认证方式
- 本地可通过peer/ident或口令认证;远程通常使用md5/scram-sha-256口令认证,并在pg_hba.conf中配置来源网段与认证方法。
- 授权模型
- 通过角色(ROLE)管理,可授予SUPERUSER、CREATEDB、CREATEROLE、LOGIN等属性,以及对库/表/模式的GRANT/REVOKE细粒度权限。
- 常用操作范式
- 创建可登录的管理员角色并授予常用管理属性:
- CREATE USER sqladmin WITH PASSWORD ‘StrongPass!’ SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
- 仅授予某库的所有权限:
- CREATE USER sqladmin WITH PASSWORD ‘StrongPass!’ LOGIN;
- GRANT ALL PRIVILEGES ON DATABASE mydb TO sqladmin;
- 远程访问需开放端口5432并配置pg_hba.conf允许对应网段与认证方式。
- 创建可登录的管理员角色并授予常用管理属性:
四 操作系统层与网络层的访问控制
- 系统用户与sudo
- 创建系统管理账号并加入wheel组(或 sudo 组)以便执行管理命令:
- sudo useradd -m -s /bin/bash sqladmin
- sudo passwd sqladmin
- sudo usermod -aG wheel sqladmin
- 创建系统管理账号并加入wheel组(或 sudo 组)以便执行管理命令:
- 防火墙与端口
- 仅开放必要端口与来源网段:
- MySQL/MariaDB:sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp & & sudo firewall-cmd --reload
- PostgreSQL:sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp & & sudo firewall-cmd --reload
- 仅开放必要端口与来源网段:
- SELinux与Web场景
- 若Web服务(如httpd/php-fpm)需要连接数据库,可能需要:
- sudo setsebool -P httpd_can_network_connect_db 1
- 若Web服务(如httpd/php-fpm)需要连接数据库,可能需要:
- 安全建议
- 遵循最小权限原则、使用强口令并定期轮换;远程访问尽量限定固定IP/网段;为数据库启用SSL/TLS加密传输。
五 Web管理工具场景 phpMyAdmin MySQL Admin Webmin SQL Admin
- 身份链路
- Web登录凭据与数据库凭据分离:Web界面登录由工具自身认证,实际操作数据库时使用配置好的数据库账号(如**‘sqladmin’@‘host’**)及其权限。
- 配置要点
- 安装并保护Web管理工具(如phpMyAdmin/MySQL-Admin),在配置文件中设置强密钥与语言等;
- 通过Nginx/Apache+PHP-FPM提供服务,限制访问来源、开启HTTPS、禁用危险PHP函数;
- 在Web工具中创建与数据库一致的账号映射,并按需授予库/表级权限,避免在生产环境使用ALL PRIVILEGES ON *.*。
- Webmin SQL Admin模块
- 在Webmin中启用数据库模块,创建数据库与用户,并在“SQL Admin”页面使用已创建的数据库账号进行管理操作。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SQLAdmin在CentOS上的用户认证与授权机制
本文地址: https://pptw.com/jishu/761374.html
