美文网首页
Mysql用户和权限管理

Mysql用户和权限管理

作者: 编程人生 | 来源:发表于2023-05-26 14:56 被阅读0次

    mysql 权限与账户管理

    mysql 的用户管理与linux 操作系统类型,主要分为普通用户和root(超级管理员用户)。 其中root 用户具有所有权限,包括创建普通用户,删除用户和 修改用户的密码等管理权限,在实际的项目应用中 ,可以根据不同的需求创建不同权限的普通用户。

    权限表

    1.information_schema  数据库中保存着关于mysql 服务器所维护的多有其他数据库的信息,这些信息被称为元数据。需要注意的是information_schema 中只存在一些只读表,这些表实际上只是试图。并不是基本表。因此这些表中将无法看到与之相关的的任何文件。试图是基本表导出的虚拟表,并不展示出所有数据,用户只能通过视图修改查看到的数据。

    information_schema 数据库也被称为 "系统目录" 和"数据字典 ", 每个用户都右权访问这些表,但只能看到表中与用户 访问权限 相应的行,其他信息则会显示为NULL 。

    mysql 数据库 是系统的核心数据库 ,主要负责存储数据库的用户,权限设置,关键字 等 Mysql 自己需要使用的控制和管理信息。

    mysql 数据库关于系统访问权限和授权信息的表如下:

    1 user 包含账户和全局权限以及其他非权限列表(安全配置选项列表和资源控制选项列)。

    2 db 数据库级别的权限表。

    3 table_priv: 表级别的权限表

    4 columns_priv: 列级别的权限表

    5 procs_priv :存储过程和函数权限表

    6 proxies_priv : 代理用户权限

    performance_schema 是MySQL 5.5 中加入的一个优化引擎 ,主要用于收集数据库服务器性能参数,在mysql5.7默认为开启状态。

    performance_schema 数据库中表的存储引擎均为 performance_schema ,所有用户不能创建存储引擎为performance_schema 的表 。

    mysql 服务器维护着许多指示其配置方式的系统变量,这些性能模式表提供了系统变量信息。performance_schema 数据库中的表可以分为以下几类。

        设置表: 主要用于配置和显示监视特征

        当前事件表: 该表中包含每个线程最新事件,按层次不同可以为阶段事件,语句事件,事务事件。

        历史记录表:与当前事件表具有相同的结构,但包含更多行。

        汇总表: 主要包含按事件聚合的信息。包括了已从历史记录表中丢弃的的事件。

        实例表: 记录了奥检测对象的类型,当服务器使用检测对象时,会产生一个事件。这类表提供了事件名称和说明性注释或状态信息。

    杂项表:

    注意 performance_schema 数据库主要收集的是 系统性能的数据,而information_schema 数据库主要存储的是系统方面元数据,两者要加以区分。

    sys 数据库所有数据来自performance_schema数据库,主要是为了将performance_schema数据库的复杂度降低,让数据库管理员 DBA 能更好地阅读苦衷地内容并了解库地运行情况。

    7.2 账户管理

    mysql --help 命令可以查看Mysql 命令的帮助信息。

    -h : 使用该参数可以指定 主机名 或 ip 地址,如果不指定,默认为 localhost

    -u : 使用该参数可以指定登录用户名

    -p : 指定登录密码 注意该参数后面的字符串和-p之间不能有空格。

    -P : 使用该参数指定登录Mysql 的端口号,如果不指定默认为3306

    -e :  使用该参数可以指定指定的sql语句。

    例如: mysql -hlocalhost -uroot -p123 mytest -e"select * from test where id = 5;"

    退出数据库:

    exit 或 quit  或\q

    创建与删除用户

    在实际生产中,通常会创建一系列具备适当权限的的普通用户,从而尽可能地不用或少用root用户身份登录系统,一次来保证数据地安全访问。

    语法格式  create user<用户名与登录主机> identified by [password]11

    "用户名与登录主机" 指地是需要创建地用户和允许登录的主机名或IP地址,格式为'user_name'@'host', 其中 user_name 为用户名 , Host 为允许登录的主机名或IP地址。

    删除用户:

    方式一 :drop user '用户名'@'主机地址'

    方式二: delete from mysql.user where host = '主机地址' and user = '用户名'

    修改用户密码

    1. 通过mysqladmin 命令修改

    mysqladmin -u username -h localhost -p "当前密码" password  "新密码"

    2.通过set命令修改

    set password for '用户名'@'ip地址'=password('新密码');

    在用户登录数据库的情况下可以

    set password=password('新密码') 修改新密码

    3.使用ALTER 语句修改密码

    alter user '用户名'@'客户端来源IP地址' identified by '新密码';

    4.使用update 修改密码

    update mysql.user set authentication_string = password('新密码') where user = '用户名' and host = '主机地址'

    关于密码的复杂度

    Mysql 5.6 后 增加了密码强度验证插件 validate_password ,该插件要求密码至少包含一个大写字母 ,一个小写字母 ,一个数字,和一个特殊字符 ,并且密码总长度至少8字符。

    忘记密码:

    如果root 用户忘记密码, 可以先停止Mysql 服务 并在配置文件中设置免密登录,然后重启服务。登录后使用相关命令修改root 用户名和密码即可。

    删除与修改用户名

    DROP USER '用户名'@'IP地址';

    Mysql 的权限

    用户的相关权限在user表中也存在对应的列(有权限为Y,没有权限对应为N)

    以mike 为列 其user 表中对应的权限 信息如下:

    select * from mysql.user where user = 'mike' and host = ''\G

    授予权限

    查看权限

    收回权限

    相关文章

      网友评论

          本文标题:Mysql用户和权限管理

          本文链接:https://www.haomeiwen.com/subject/aibkedtx.html