MariaDB10创建用户并授权

在 MariaDB 10 中,创建用户并授权可以通过以下步骤完成:

一、创建用户

sql 复制代码
-- 创建一个本地用户(仅允许通过 localhost 登录)
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

-- 创建一个允许远程登录的用户(需替换为实际 IP 或域名)
CREATE USER 'username'@'192.168.1.100' IDENTIFIED BY 'password';

-- 允许用户从任意主机登录(谨慎使用)
CREATE USER 'username'@'%' IDENTIFIED BY 'password';

参数说明:

username:用户名称

host:登录主机(如 localhost、IP 地址或 %)

password:用户密码(建议使用复杂密码)

二、授予权限

1. 授予基本权限

sql 复制代码
-- 授予对某个数据库的所有表的 SELECT/INSERT/UPDATE/DELETE 权限
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.table_name TO 'username'@'host';

-- 授予对整个数据库的所有权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';

2. 授予管理权限(如创建数据库/用户)

sql 复制代码
-- 授予全局管理权限(谨慎使用)
GRANT CREATE USER, CREATE DATABASE ON *.* TO 'username'@'host';

3. 使用角色简化权限管理(MariaDB 10.2+ 支持)

sql 复制代码
-- 创建角色并授予权限
CREATE ROLE 'read_role';
GRANT SELECT ON database_name.* TO 'read_role';

-- 将角色授予用户
GRANT 'read_role' TO 'username'@'host';

三、刷新权限

sql 复制代码
FLUSH PRIVILEGES;  -- 使权限生效

四、查看用户权限

sql 复制代码
-- 查看用户权限
SHOW GRANTS FOR 'username'@'host';

-- 查看所有用户信息
SELECT User, Host FROM mysql.user;

五、撤销权限

sql 复制代码
-- 撤销特定权限
REVOKE SELECT ON database_name.table_name FROM 'username'@'host';

-- 撤销所有权限
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';

六、删除用户

sql 复制代码
-- 删除用户(需先撤销其权限)
DROP USER 'username'@'host';

安全建议

密码安全:使用强密码,避免明文存储。

最小权限原则:仅授予必要的权限,避免使用 ALL PRIVILEGES。

限制远程登录:优先使用 localhost,若需远程访问,明确指定 IP 范围。

定期清理用户:移除无用账户以降低风险。

相关推荐
今晚务必早点睡19 小时前
微服务改数据库密码后服务仍能访问?一次“看似异常、实则常见”的生产现象全解析
数据库·微服务·oracle
老师我太想进步了202621 小时前
cmd连接MySQL及相关查询
数据库·mysql
難釋懷1 天前
Redis命令-Set命令
数据库·redis·缓存
Linux-palpitate1 天前
PostgreSQL(PG)的1主2从集群部署安装
数据库·postgresql
heartbeat..1 天前
数据库基础知识体系:概念、约束、范式与国产产品
java·数据库·学习笔记·国产数据库
山峰哥1 天前
数据库工程核心:SQL调优让查询效率飙升的实战密码
网络·汇编·数据库·sql·编辑器
Coder_Boy_1 天前
基于SpringAI的在线考试系统-DDD业务领域模块设计思路
java·数据库·人工智能·spring boot·ddd
小雪_Snow1 天前
Windows 安装 MySQL 8.0 教程【安装包方式】
数据库·mysql
无敌的牛1 天前
MySQL初阶
数据库·mysql
不会C++的雾1 天前
Linux操作系统(2)
linux·数据库·mysql