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 阅读 46 次 更新于 2025-10-30 10:16:16 我来答关注问题0
  •  翡希信息咨询 为什么我不再看好MariaDB

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

  • MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用...

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

    MariaDB与MySQL之间存在数百个不兼容问题,迁移需要考虑很多因素。六、存储引擎 MariaDB:支持更多存储引擎类型,包括XtraDB、InnoDB、MariaDB ColumnStore等。MySQL:支持InnoDB、MyISAM、Memory等存储引擎。七、安装与云平台 在某些Linux发行版上,默认安装的是MariaDB(如Red Hat、CentOS等),而其他发行版...

  • MySQL与MariaDB的主要区别体现在开发者、许可证、功能、性能以及社区支持等方面。MySQL由Oracle Corporation开发和维护,而MariaDB则是由MySQL的创始人之一Michael Widenius领导的团队负责。在许可证方面,MySQL使用的是GPL许可证,而MariaDB使用的是LGPL许可证或GPLv2许可证,这意味着在开源和专有软件项目中...

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

    PostgreSQL、MariaDB 和 SQLite 的对比 在现代企业级技术领域中,开源数据库已成为不可或缺的重要部分。PostgreSQL、MariaDB 和 SQLite 作为三款主流的开源数据库,各自具有独特的优势和劣势。以下是对这三款数据库的详细对比:一、PostgreSQL 优势:核心算法高效:PostgreSQL 的性能在处理大型数据集时尤为...

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

mySQL相关话题

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