mysql权限和账户管理
mysql的用户管理和linux操作系统的类型主要分为普通用户和root(超级管理员用户)。 root用户拥有所有权限,包括创建普通用户、删除用户、修改用户密码等管理权限。 在实际项目应用中,可以根据不同的需要创建不同权限的普通用户。
权限表
数据库保存有关由 mysql 服务器维护的其他数据库的信息,称为元数据。 需要注意的是,表中只有一些只读表,这些表其实只是尝试。 不是基表。 因此,与它们关联的任何文件在这些表中都将不可见。 试图做一个基本表导出的虚拟表,并不能显示所有的数据,用户只能通过视图修改查看到的数据。
数据库又称为“系统目录”、“数据字典”。 每个用户都有访问这些表的权限,但只能看到表中用户访问权限对应的行,其他信息将显示为NULL。
mysql数据库是系统的核心数据库,主要负责存放Mysql需要使用的数据库用户、权限设置、关键字等控制管理信息。
mysql数据库的系统访问权限和授权信息表如下:
1 用户 包含帐户和全局权限以及其他非权限列表(安全配置选项列表和资源控制选项列)。
2 db 数据库级别的权限表。
3:表级权限表
4:列级权限表
5:存储过程和函数权限表
6:代理用户权限
它是MySQL 5.5中加入的优化引擎。 主要用于收集数据库服务器性能参数。 它在 .7 中默认启用。
数据库中表的存储引擎是,所有用户都不能用.的存储引擎创建表。
mysql服务器维护了一些系统变量来指示它是如何配置的,这些性能模式表提供了系统变量信息。 数据库中的表可以分为以下几类。
设置表:主要用于配置和显示监控功能
当前事件表:这个表包含了每个线程的最新事件,按照不同的级别可以是阶段事件、语句事件、事务事件。
历史表:与当前事件表具有相同的结构,但包含更多行。
汇总表:主要包含按事件汇总的信息。 包括已从历史表中丢弃的事件。
实例表:记录检测对象的类型。 当服务器使用检测对象时,会产生一个事件。 这些表格提供了事件名称和描述性注释或状态信息。
杂项表:
注意,数据库主要收集系统性能数据,而数据库主要存储系统元数据,两者必须区分。
sys数据库中的所有数据都来自于数据库,主要是为了降低数据库的复杂度,让数据库管理员DBA更好的阅读痛苦的内容,理解数据库的操作。
7.2 账户管理
mysql --help命令可以查看Mysql命令的帮助信息。
-h :使用该参数指定主机名或ip地址,不指定则默认为
-u:使用该参数指定登录用户名
-p:指定登录密码。 注意这个参数后面的字符串和-p之间不能有空格。
-P :使用该参数指定登录Mysql的端口号,不指定默认为3306
-e :使用该参数来指定指定的sql语句。
例如:mysql - -uroot -p123 -e "* from test where id = 5;"
退出数据库:
退出或退出或 \q
创建和删除用户
在实际生产中,通常会创建一系列具有适当权限的普通用户,尽可能避免或使用root用户登录系统,以保证数据访问安全。
语法格式 user by []11
“用户名和登录主机”是指要创建的用户和允许登录的主机名或IP地址,格式为''@'host',其中是用户名,Host是主机名或IP允许登录的地址。
删除用户:
方法一:drop user '用户名'@'主机地址'
方法 2:从 mysql.user where host = 'host ' and user = ''
修改用户密码
1.通过命令修改
-u -h -p “当前密码” “新密码”
2.通过set命令修改
设置为'用户名'@'ip地址'=('新密码');
在用户登录到数据库的情况下,可以
set =('new ') 修改新密码
3.使用ALTER语句修改密码
通过“新密码”更改用户“用户名”@“客户端源IP地址”;
4.使用更改密码
mysql.user set g = ('new ') where user = '用户名' and host = '主机地址'
关于密码复杂度
Mysql 5.6之后,增加了密码强度验证插件。 本插件要求密码至少包含1个大写字母、1个小写字母、1个数字、1个特殊字符,密码总长度至少为8个字符。
忘记密码:
如果root用户忘记密码,可以先停止Mysql服务,在配置文件中设置免密码登录,然后重启服务。 登录后,使用相关命令修改root用户名和密码。
删除和修改用户名
DROP USER '用户名'@'IP地址';
mysql权限
用户的相关权限在用户表中也有相应的列(Y有权限,N没有权限)
以mike为列,user表中对应的权限信息如下:
* 来自 mysql.user,其中 user = 'mike' 和 host = ''\G
授予权限
查看权限
撤销权限