在Ubuntu上管理MariaDB权限前,需先以root用户(或具有sudo权限的用户)登录MariaDB命令行客户端:
sudo mysql -u root -p
输入root用户的密码后,进入MariaDB交互式命令行界面(提示符为MariaDB [(none)]>)。
创建用户时需指定用户名、主机名(限制登录来源)和密码:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'StrongPassword123!';
192.168.1.100):CREATE USER 'username'@'192.168.1.100' IDENTIFIED BY 'StrongPassword123!';
CREATE USER 'username'@'%' IDENTIFIED BY 'StrongPassword123!';
注:
localhost表示本机,%表示任意主机,建议根据实际需求限制主机范围以提高安全性。
若需删除用户,使用DROP USER语句:
DROP USER 'username'@'localhost';
删除用户前无需手动撤销权限,该命令会自动清除用户的所有权限。
权限管理是核心操作,MariaDB支持按需分配(推荐)和全局授权(谨慎使用):
授予用户对特定数据库的特定权限(如查询、插入、更新):
GRANT SELECT, INSERT, UPDATE ON database_name.* TO 'username'@'localhost';
database_name.*:表示该数据库下的所有表;SELECT, INSERT, UPDATE:可组合使用(如SELECT, INSERT表示只读+插入权限)。授予用户所有数据库的所有权限(仅限管理员或测试环境):
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
*.*:表示所有数据库的所有表;通过角色简化权限分配(适用于多用户共享相同权限的场景):
-- 1. 创建角色并授予权限
CREATE ROLE 'read_only_role';
GRANT SELECT ON database_name.* TO 'read_only_role';
-- 2. 将角色授予用户
GRANT 'read_only_role' TO 'username'@'localhost';
角色可复用,修改角色权限后,所有拥有该角色的用户会自动继承新权限。
执行GRANT或REVOKE后,需通过以下命令使权限变更立即生效:
FLUSH PRIVILEGES;
注:MariaDB 10.4及以上版本会自动刷新权限,但显式执行该命令可确保立即生效。
SHOW GRANTS FOR 'username'@'localhost';
示例输出:GRANT SELECT, INSERT ON database_name.* TO 'username'@'localhost'SELECT User, Host FROM mysql.user;
可通过新用户登录MariaDB,尝试执行操作(如SELECT * FROM table_name)验证权限是否生效。
若需收回用户权限,使用REVOKE语句(语法与GRANT相反):
REVOKE INSERT, UPDATE ON database_name.* FROM 'username'@'localhost';
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';
撤销后需执行FLUSH PRIVILEGES;使变更生效。
SELECT, INSERT,无需DROP)。%作为主机名,如需远程访问,应明确指定IP地址(如192.168.1.100)。MyPassw0rd_2025),并定期更换。SELECT User, Host FROM mysql.user;),移除无用账户(如测试账户)。若偏好图形界面,可安装phpMyAdmin(基于Web的管理工具):
sudo apt update
sudo apt install phpmyadmin
安装过程中选择Web服务器(Apache/Nginx)并配置数据库密码。安装完成后,通过浏览器访问http://your_server_ip/phpmyadmin,即可通过界面管理用户和权限(如创建用户、分配权限、查看权限)。