• mysql—用户管理


    本次博客带领大家学习mysql数据库中的用户管理。

    MySQL用户

    • mysql中的用户,都存储在系统数据库中的user表中。
      请添加图片描述
    • 其中user表的重要字段说明:
      1. host:允许登录的"位置",localhost表示该用户只允许本机登录,也可以指定ip地址,比如:192.168.1.100。
      2. user:用户名。
      3. authentication_string:密码,是通过mysql的password()函数加密之后的密码。

    创建用户

    • create user ‘用户名’ @‘允许登录位置’ identified by ‘密码’;

    说明:创建用户,同时指定密码。

    删除用户

    • drop user ‘用户名’ @‘允许登录位置’;
    -- mysql用户的管理
    -- 原因:当我们做项目开发时,可以根据不同的开发人员,赋给他相应的mysql操作权限。
    -- 所以,mysql数据库管理人员(root),根据需要创建不同的用户,赋给相应的权限,供开发人员使用
    
    -- 1. 创建新的用户
    CREATE USER 'ld' @'localhost' IDENTIFIED BY '123456';
    
    SELECT * FROM USER;
    
    -- 2. 删除用户
    DROP USER 'ld' @'localhost'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    用户修改密码

    • 修改自己的密码:

    set password = password (‘密码’);

    • 修改他人的密码(需要有修改用户密码权限):

    set password for ‘用户名’ @‘登录位置’ = password(‘密码’);

    mysql中的权限

    请添加图片描述

    给用户授权

    • 基本语法:grant 权限列表 on 库.对象名 to ‘用户名’ @‘允许登录位置’ [identified by ‘密码’]

    • 说明:

      1. 权限列表,多个权限用逗号分开:

        grant select on…

        grant select,delete,create on…

        grant all [privileges] on … //表示赋予该用户在该对象上的所有权限。

      2. 特别说明:

        *.*:代表本系统中的所有数据库的所有对象(表,视图,存储过程等)。

        库.*:表示某个数据库中的所有数据对象(表,视图,存储过程等)。

      3. identified by可以省略,也可以写出:

        1. 如果用户存在,就是修改该用户的密码。
        2. 如果该用户不存在,就是创建该用户!

    回收用户权限

    • 基本语法:revoke 权限列表 on 库.对象名 from ‘用户名’@‘登录位置’;

    权限生效指令

    如果权限没有生效,可以执行下面命令:

    • 基本语法:FLUSH PRIVILEGES;

    用户管理练习

    1. 创建一个用户(你的名字,拼音),密码是123,并且只可以从本地登录,不让远程登录mysql。
    2. 创建库和表 testdb 下的 news表,要求:使用root用户创建。
    3. 给用户分配查看 news 表和添加数据的权限。
    4. 修改密码为abc,要求:使用root用户完成,并回收所有权限。
    5. 使用root用户删除你的用户。
    -- 1.
    CREATE USER 'lidong'@'localhost' IDENTIFIED BY '123';
    
    -- 2.
    CREATE DATABASE testdb;
    CREATE TABLE news (
    	id INT,
    	content VARCHAR(32));
    	
    INSERT INTO news VALUES(100,'广州新闻');
    
    SELECT * FROM news;
    
    -- 3.
    GRANT SELECT , INSERT 
    	ON testdb.news
    	TO 'lidong'@'localhost'
    	
    -- 4.
    SET PASSWORD FOR 'lidong'@'localhost' = PASSWORD('adc');
    
    -- 回收 lidong 用户在 testdb.news 表的所有权限
    REVOKE SELECT ,UPDATE,INSERT ON testdb.news FROM 'lidong'@'localhost';
    
    -- 5. 
    DROP USER 'lidong'@'localhost';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    细节说明

    1. 在创建用户的时候,如果不指定Host,则为%,%表示所有IP都有连接的权限 create user xxx。
    2. 你也可以这样指定 create user ‘xxx’@‘192.168.1.%’ 表示 xxx用户在 192.168.1.*的ip可以登录mysql。
    3. 在删除用户的时候,如果host不是%,需要明确指定 ‘用户’@‘host值’。
  • 相关阅读:
    babel:无法将“babel“项目识别问题
    【无标题】
    【SpringBoot】YAML 配置文件
    hive-学习微博日志分析
    【汇编语言-王爽】第八章:数据处理的两个基本问题
    迅为RK3399开发板Ubuntu系统交叉编译Qt-命令行交叉编译Qt工程
    0-1背包
    LeetCode【30. 串联所有单词的子串】
    实时跟踪企业订单执行情况,采购系统助力汽车服务企业缩短采购订单周期
    迁移到新的 Java 8 日期时间 API
  • 原文地址:https://blog.csdn.net/lidong777777/article/details/126641462