您现在的位置是:亿华云 > 应用开发
带您深入了解MySQL的权限管理
亿华云2025-10-03 02:25:50【应用开发】4人已围观
简介MySQL 的权限表在数据库启动的时候就载入内存,当用户通过身份认证后,就在内存中进行相应权限的存取,这样,此用户就可以在数据库中做权限范围内的各种操作了。一、权限表的存取在权限存取的两个过程中,系统
MySQL 的入解权限表在数据库启动的时候就载入内存,当用户通过身份认证后,权限就在内存中进行相应权限的管理存取,这样,入解此用户就可以在数据库中做权限范围内的权限各种操作了。
一、管理权限表的入解存取
在权限存取的两个过程中,系统会用到 “mysql” 数据库(安装 MySQL 时被创建,权限数据库名称叫“mysql”) 中 user、管理host 和 db 这3个最重要的入解权限表。
在这 3 个表中,权限最重要的管理表示 user 表,其次是入解 db 表,亿华云host 表在大多数情况下并不使用。权限
user 中的管理列主要分为 4 个部分:用户列、权限列、安全列和资源控制列。
通常用的最多的是用户列和权限列,其中权限列又分为普通权限和管理权限。普通权限用于数据库的操作,比如 select_priv、super_priv 等。
当用户进行连接时,权限表的存取过程有以下两个过程:
先从 user 表中的 host、user 和 password 这 3 个字段中判断连接的 IP、用户名、源码下载和密码是否存在于表中,如果存在,则通过身份验证,否则拒绝连接。 如果通过身份验证、则按照以下权限表的顺序得到数据库权限:user -> db -> tables_priv -> columns_priv。在这几个权限表中,权限范围依次递减,全局权限覆盖局部权限。上面的***阶段好理解,下面以一个例子来详细解释一下第二阶段。
为了方便测试,需要修改变量 sql_mode
// sql_mode 默认值中有 NO_AUTO_CREATE_USER (防止GRANT自动创建新用户,除非还指定了密码) SET SESSION sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION;1. 创建用户 zj@localhost,并赋予所有数据库上的所有表的 select 权限
MySQL [mysql]> grant select on *.* to zj@localhost; Query OK, 0 rows affected, 2 warnings (0.00 sec) MySQL [mysql]> select * from user where user="zj" and host=localhost \G;很赞哦!(67)
上一篇: 2023年阻碍数据中心行业增长的五大挑战
下一篇: 光缆连接在智能建筑中的应用优势