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 阅读 8 次 更新于 2025-07-20 16:04:51 我来答关注问题0
  •  翡希信息咨询 数据库管理系统:MySQL与MariaDB的选择有何差异?

    MySQL与MariaDB的选择差异主要体现在历史背景、开源性质争议、市场倾向以及学习迁移性上:历史背景:MySQL:曾是一个极为热门的数据库管理系统选择,尤其在开源社区中享有盛誉。MariaDB:由于Oracle收购MySQL后,其开源性质和商业专利引发了一些争议,这促使了MariaDB的诞生,作为MySQL的一个分支,保持了其开源...

  •  翡希信息咨询 mariadb和mysql怎么选

    选择MariaDB还是MySQL,取决于具体需求和场景。以下是详细的建议:1. 两者关系与差异: MariaDB是MySQL的一个分支,由MySQL的原始开发者创建,在很多方面与MySQL相似,但存在差异,主要体现在默认配置、特性支持和许可协议上。2. 功能与使用场景: MariaDB: 更加注重事务处理和性能优化,适用于需要高性...

  •  阿暄生活 Mariadb:目前学习到的常用命令

    MariaDB的常用命令主要包括以下几类:数据库和表的管理:显示当前数据库:使用SHOW DATABASES;命令来列出所有数据库。创建新数据库:使用CREATE DATABASE database_name;命令来创建一个新的数据库。删除数据库:使用DROP DATABASE database_name;命令来删除一个数据库。显示当前数据库中的所有表:使用SHOW ...

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

    MySQL:支持原生JSON类型和加密增强,提供MySQL Shell和validate_password插件等独特功能。MariaDB:侧重于线程池和AWS密钥管理,提供不同的功能侧重点。兼容性与迁移:MariaDB:可以较容易地从MySQL复制数据,但MySQL从MariaDB复制数据则较为困难。复制配置:两者在复制配置和不兼容问题上存在区别,需要特别注意。

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

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

mySQL相关话题

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