使用root用户或具有sudo权限的用户登录MariaDB控制台:
sudo mysql -u root -p
输入root密码后进入MariaDB命令行界面(提示符为MariaDB [(none)]>)。
通过CREATE USER语句创建用户,需指定用户名、登录主机(决定用户可从哪些主机连接)和密码:
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!';
注意:
username为自定义用户名,StrongPassword123!需替换为包含大小写字母、数字和符号的复杂密码。
使用GRANT语句为用户分配权限,支持细粒度权限(如SELECT、INSERT)和全局权限(如ALL PRIVILEGES):
GRANT SELECT, INSERT, UPDATE ON database_name.table_name TO 'username'@'host';
示例:授予用户john对mydb数据库所有表的SELECT、INSERT、UPDATE权限(仅本地登录):GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'john'@'localhost';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
示例:授予用户john对mydb数据库的所有权限:GRANT ALL PRIVILEGES ON mydb.* TO 'john'@'localhost';
GRANT CREATE USER, CREATE DATABASE ON *.* TO 'username'@'host';
WITH GRANT OPTION):GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' WITH GRANT OPTION;
关键:权限设置完成后,必须执行
FLUSH PRIVILEGES;使更改立即生效。
通过SHOW GRANTS语句查看用户的权限详情:
SHOW GRANTS FOR 'username'@'host';
示例:查看用户john在本地登录的权限:SHOW GRANTS FOR 'john'@'localhost';
SELECT User, Host FROM mysql.user; -- 查看所有用户
SELECT * FROM mysql.db WHERE User='username'; -- 查看指定用户的权限详情
使用REVOKE语句撤销用户的特定权限,必须与授权时的权限范围一致:
REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'host';
示例:撤销用户john对mydb数据库的SELECT权限:REVOKE SELECT ON mydb.* FROM 'john'@'localhost';
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'host';
注意:撤销权限后需执行
FLUSH PRIVILEGES;使更改生效。
使用DROP USER语句删除用户(需先撤销其所有权限):
DROP USER 'username'@'host';
示例:删除用户john(本地登录):
DROP USER 'john'@'localhost';
提示:删除用户前,建议先备份重要数据。
SELECT、INSERT权限,避免使用ALL PRIVILEGES)。localhost,若需远程访问,将host设置为具体IP(如192.168.1.100),而非%。SELECT User, Host FROM mysql.user;查看所有用户,移除无用账户(如测试账户)。以上步骤覆盖了Linux环境下MariaDB权限设置的核心操作,可根据实际需求调整权限范围,确保数据库安全。