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

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

相关推荐
-SGlow-6 小时前
MySQL相关概念和易错知识点(3)(表内容的CURD、内置函数)
linux·运维·服务器·数据库·mysql
飞翔的佩奇6 小时前
基于SpringBoot+MyBatis+MySQL+VUE实现的经方药食两用服务平台管理系统(附源码+数据库+毕业论文+部署教程+配套软件)
数据库·vue.js·spring boot·mysql·毕业设计·mybatis·经方药食两用平台
bing_1587 小时前
在多租户或多服务共享 Redis 时,如何做逻辑隔离或权限控制?
数据库·redis·缓存
ChaITSimpleLove7 小时前
PostgreSQL 中删除指定数据库下的所有表结构
数据库·postgresql·bash·sql 脚本·.net npgsql
孫治AllenSun9 小时前
【Mysql】字段隐式转换对where条件和join关联条件的影响
数据库·mysql·oracle
生涯にわたる学び9 小时前
数据库02 网页html01 day44
数据库·html
2301_7930868710 小时前
Mysql group by
数据库·mysql
jllllyuz10 小时前
Spring中的事务是如何实现的
数据库·sql·spring
wangmengxxw11 小时前
Spring-常用注解
java·数据库·spring·注解
m0_7472660911 小时前
contentprovider实验+SQLite数据库的实现
数据库·sqlite