• MySQL数据库用户管理


    目录

    新建用户

    格式:

     重命名用户

    格式:

     删除用户

    格式:

     修改当前用户密码

    格式:

     修改其他用户密码

    格式:

     忘记root密码的解决方法

    数据库用户授权

    授予权限

    格式:

    用户权限列表

    查看权限

    格式:

     撤销权限

    格式:

    刷新授权表

    格式:


    新建用户

    格式:

    1. CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
    2. #‘用户名’:指定将创建的用户名
    3. #‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
    4. #‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;
    5. ------若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;
    6. ------若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

    例:

    创建用户名为zhangsan的用户,仅允许该用户在本地进行登录,密码为abc123,by后面接密码,即表示使用明文密码登录

    MySQL有单独的加密算法使用select password('密码');会出现明文密码对应的密文密码字段

    例:

    在创建用户时也可以使用加密字段,MySQL会自动识别 

    例:

     当创建完用户后,可以登录root用户进入mysql库中,查看user表User,Host,authentication_string三列内容,即可看见已有用户、是否是仅本地登录以及密码

     重命名用户

    格式:

    1. rename user '原用户名'@'来源地址' to '新用户名'@'来源地址';
    2. select User,Host,authentication_string from user;#查看用户信息

    例:

     删除用户

    格式:

    1. drop user '用户名'@'来源地址';
    2. select User,Host,authentication_string from user;#查看用户列表

    例:

     修改当前用户密码

    格式:

    set password = password('新密码');

    例:

     修改其他用户密码

    格式:

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

     例:

     忘记root密码的解决方法

    修改/etc/my.cnf配置文件,不使用密码直接登录到mysql

    1. vim /etc/my.cnf
    2. [mysqld]
    3. skip-grant-tables #添加,使登录mysql不使用授权表
    4. systemctl restart mysqld #重启mysql服务
    5. mysql #直接登录

    例:

    数据库用户授权

    授予权限

    grant语句:专门用来设置数据库用户的访问权限。当指定的用户不存在时,grant语句将会创建新的用户;当指定的用户名存在时,grant语句用于修改用户信息。

    格式:

    1. grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [identified by '密码'];

    权限列表:用于列出授予用户权限,用逗号进行分隔
    如“select,insert,update”。使用all表示所有权限,可授权执行任何操作。

    数据库名.表名:用来指定授权操作的数据库和表的名称,其中可以使用通配符“ * ”.

    例:使用 " test.* "表示授权操作的对象为 test 数据库中的所有表。

    '用户名'@'来源地址':用于指定用户名称和允许访问的客户机地址,即哪个用户能进行连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如:“%.test.com”、“192.168.32.%”等。

    identified by:用于设置用户连接数据时所使用的密码字符串。

    在新建用户时,若省略“identified by”部分,则用户的密码将为空。

    例:

    给zhangsan用户的所有的库和表添加select权限 

    用户权限列表

    insert                        插入数据
    select                       查询数据
    updata                     更新表的数据
    delete                      删除表中的数据 
    create                      创建库、表
    drop                        删除库、表
    index                       建立索引
    alter                        更改表属性
    lock tables              锁表
    create view             创建视图
    show view               显示视图
    create routine         创建存储过程
    alter routine            修改存储过程
    event                       事件
    trigger on                创建触发器

    查看权限

    格式:

    show grants for '用户名'@'localhost'

    例:

    查看zhangsan用户的权限

     查看自己的权限

     撤销权限

    格式:

    REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'来源地址';

    例:

     撤销用户zhangsanselect权限

    刷新授权表

    格式:

    flush privileges;
    
    • flush privileges 命令本质上的作用是将当前 user 和 privilige 表中的 用户信息/权限设置 从 mysql 库(MySQL数据库的内置库)中提取到内存里。
    • MySQL用户数据和权限有修改后,希望在 “不重启MySQL服务” 的情况下直接生效,那么就需要执行这个命令。
    • 通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。
       
  • 相关阅读:
    [山东科技大学OJ]2297 Problem F: 编写函数:字符串的小写转大写(Append Code)
    Prometheus的remotewrite for java
    Higg FEM 4.0将于2023年11月份在Worldly平台上正式发布
    【教学类-19-02】20221127《ABCABC式-规律排序-A4竖版2份》(中班)
    数据分析-Pandas数据的直方图探查
    关于liunx 宝塔运行php项目
    Composition API 前提
    Linux PostgreSQL离线下载与安装
    《对比Excel,轻松学习Python数据分析》读书笔记------数据可视化
    ELK概述部署和Filebeat 分布式日志管理平台部署
  • 原文地址:https://blog.csdn.net/weixin_65580338/article/details/127485403