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 范围。

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

相关推荐
islandzzzz24 分钟前
三表查询SQL怎么写?----小白初学+案例引入
数据库
卡布奇诺-海晨1 小时前
MySQL的MVCC机制
数据库·mysql
hao_wujing1 小时前
攻击模型的恶意行为检测
网络·数据库·php
秃头摸鱼侠2 小时前
MySQL查询语句(续)
数据库·mysql
MuYiLuck2 小时前
【redis实战篇】第八天
数据库·redis·缓存
睡觉待开机3 小时前
6. MySQL基本查询
数据库·mysql
大熊猫侯佩3 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(三)
数据库·swiftui·swift
大熊猫侯佩3 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(二)
数据库·swiftui·swift
大熊猫侯佩3 小时前
用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化
数据库·swiftui·swift
大熊猫侯佩3 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(一)
数据库·swiftui·swift