一、前置准备:安装并登录数据库 在Linux系统(如CentOS、Ubuntu)中,需先安装数据库服务(以MySQL为例),并使用root账户登录:
# CentOS安装MySQL
sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
# Ubuntu安装MySQL
sudo apt-get update
sudo apt-get install -y mysql-server
# 登录数据库(root用户)
mysql -u root -p
二、创建专用SQLAdmin用户 为避免直接使用root账户,需创建专用SQLAdmin用户(以“sqladmin”为例),并设置强密码:
-- 创建用户(限制访问来源为localhost,提升安全性)
CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
三、分配最小必要权限 根据SQLAdmin的实际用途(如数据库管理、数据操作),遵循最小权限原则分配权限:
GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON mydatabase.* TO 'sqladmin'@'localhost' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON mydatabase.mytable TO 'sqladmin'@'localhost';
执行后刷新权限,使更改立即生效:
FLUSH PRIVILEGES;
四、Linux系统层权限配置
/etc/my.cnf)仅对必要用户可读:sudo chown root:sqladmin /etc/my.cnf
sudo chmod 640 /etc/my.cnf
wheel组(CentOS)或sudo组(Ubuntu),以便执行管理命令:# CentOS
sudo usermod -aG wheel sqladmin
# Ubuntu
sudo usermod -aG sudo sqladmin
五、安全增强措施
# CentOS(firewalld)
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
# Ubuntu(ufw)
sudo ufw allow from 192.168.1.100 to any port 3306
sudo ufw enable
general_log)。六、验证权限 使用sqladmin用户登录数据库,测试权限是否生效:
mysql -u sqladmin -p
-- 测试权限(如创建数据库)
CREATE DATABASE testdb; -- 若有权限则成功,否则报错
EXIT;
注意:生产环境中,需根据实际需求调整权限范围(如限制访问IP、缩小数据库范围),并定期审计权限使用情况。