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'

用户修改密码

  • 修改自己的密码:

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. 在创建用户的时候,如果不指定Host,则为%,%表示所有IP都有连接的权限 create user xxx。
  2. 你也可以这样指定 create user ‘xxx’@‘192.168.1.%’ 表示 xxx用户在 192.168.1.*的ip可以登录mysql。
  3. 在删除用户的时候,如果host不是%,需要明确指定 ‘用户’@‘host值’。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值