MariaDB&47;MySQL用户和权限管理

用户管理涉及创建、授权、修改和删除用户。创建用户时需指定用户名、主机名和密码,密码应使用IDENTIFIED BY或PASSWORD语句设置。创建或修改用户后,通常需要使用FLUSH PRIVILEGES命令刷新权限表。MySQL中存在让密码过期的功能,但在MariaDB中不支持此功能。记录创建用户的时间,MariaDB/MySQL默认并不在mysql.user...
MariaDB&47;MySQL用户和权限管理
MariaDB/MySQL的用户由用户名和主机名构成,如"root@localhost"。在系统中,同用户名但不同主机名被视为不同的用户。权限管理由两步验证构成:首先验证用户身份的合法性,然后根据合法用户分配对数据库中对象的操作权限。

权限管理涉及权限表的读取与写入。MariaDB/MySQL在服务器启动后加载权限表到内存中,当用户尝试连接时,系统读取权限表进行验证与分配。权限表存放在mysql数据库中,包含多个表,如user、db、tables_priv、columns_priv等。这些表的权限是逐层细化的:user表提供针对所有数据库的权限,db表针对特定数据库,tables_priv表针对特定表,columns_priv表针对特定列。

权限分配过程包括为特定用户授予特定数据库的特定权限。例如,授予用户test数据库的select权限时,检查user表中的权限与db表中的权限。使用GRANT语句可以一次性为多个用户授权多个对象的权限,而REVOKE语句用于收回权限,但不包括usage权限。

用户管理涉及创建、授权、修改和删除用户。创建用户时需指定用户名、主机名和密码,密码应使用IDENTIFIED BY或PASSWORD语句设置。创建或修改用户后,通常需要使用FLUSH PRIVILEGES命令刷新权限表。MySQL中存在让密码过期的功能,但在MariaDB中不支持此功能。

记录创建用户的时间,MariaDB/MySQL默认并不在mysql.user表中记录用户的创建时间。可使用ALTER TABLE语句添加create_time列来记录时间信息。此功能仅适用于新创建的用户,已有用户的创建时间无法更新。

查看用户权限可以通过SHOW GRANTS语句,此命令显示特定用户的权限详情,包括对数据库、表、特定列的访问权限。使用REVOKE语句时,必须明确指定回收的数据库对象和用户名。GRANT ALL ON *.* FROM '用户名'仅表示在特定数据库上授予所有权限,而回收权限时,只能针对具体数据库或对象,如REVOKE SELECT ON test.* FROM '用户名'。

删除用户可以使用DROP USER语句或从mysql.user表中删除用户记录。当从表中删除用户记录时,用户对该表的权限不会被回收,因此在创建同名表时会自动授予权限,造成权限外流。建议使用DROP USER语句来避免此问题。

设置密码和恢复root密码包括多种方法。在MariaDB中,可以使用GRANT、SET PASSWORD、ALTER USER、MYSQLADMIN等命令设置密码。设置密码后需要刷新权限表,确保密码更新有效。恢复root密码时,可以使用mysqld_safe服务程序并指定"--skip-grant-tables"选项跳过授权表,直接修改mysql.user表中的密码字段。重启MySQL服务后,密码更新生效。2024-10-31
mengvlog 阅读 32 次 更新于 2025-09-09 12:30:40 我来答关注问题0
  •  翡希信息咨询 为什么我不再看好MariaDB

    基于以上原因,你对MariaDB的未来持悲观态度。虽然MariaDB在某些方面仍然具有优势,如与MySQL的兼容性、开源特性等,但在存储引擎、开发团队规模、资金投入、时代风向以及商业模式等方面存在的问题使得其难以与MySQL等主流数据库软件相抗衡。因此,你不再看好MariaDB的发展前景。(图片仅为示意,与本文内容无...

  •  文暄生活科普 MariaDB 成功敲钟上市 | 它与 Navciat 缘起 10 年前

    当前,不少国内大客户正处于国产替代阶段,而 MariaDB 与 Oracle 有非常高的兼容性,Oracle 上的应用可以直接运行在 MariaDB 上。这一特点使得 MariaDB 在国产替代场景中具有极大的优势。目前,MariaDB 的客户已经涵盖了 Nokia、三星、DBS、红帽等行业头部厂商。从最新 DB-Engines Ranking 排名来看,Mari...

  •  文暄生活科普 开源数据库 PostgreSQL、MariaDB 和 SQLite 的对比

    安全性高:MariaDB 频繁进行安全发布,表明其开发社区对安全性的重视。与 MySQL 高度兼容:MariaDB 在坚持开源的同时,保持了与 MySQL 的高度兼容性,使得从 MySQL 向 MariaDB 的迁移变得容易。性能优化:使用 Aria 作为存储引擎,既支持事务也支持非事务操作,提高了性能。劣势:IDX 日志文件臃肿:长期...

  •  翡希信息咨询 MariaDB和MySQL全面对比:选择数据库一定考虑这几点

    MariaDB和MySQL全面对比:选择数据库一定考虑这几点 一、用户基础 MySQL:被众多知名企业使用,如Facebook、Github、YouTube、Twitter、PayPal、诺基亚、Spotify、Netflix等。MariaDB:同样拥有一定的用户基础,包括Redhat、DBS、Suse、Ubuntu、1&1、Ingenico等。二、功能比较 JSON 数据类型:MySQL:从5.7版本...

  •  文暄生活科普 数据库选型必看:MySQL 与 MariaDB 功能对比全解析

    一、表格功能差异详解 JSON 列类型 MySQL 的 JSON 支持:MySQL 从 5.7 版本开始引入了原生的 JSON 数据类型,使得存储和查询 JSON 文档更加高效。MySQL 的 JSON 类型支持多种 JSON 函数,如 JSON_SET、JSON_INSERT、JSON_REPLACE 等,允许用户直接在数据库层面进行 JSON 文档的修改。MariaDB 的 JSON...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部