mysql管理

韩顺平 零基础30天学会Java

Mysql 用户管理

  • 原因:当我们做项目开发时,可以根据不同的开发人员,赋给他相应的 Mysql 操作权限。所以 Mysql 数据库管理人员(root),根据需要创建不同的用户,赋给相应的权限,供人员使用。
  • 不同的数据库用户,登录到DBMS后,根据相应的权限 ,可以操作的数据库和数据对象(表,视图,触发器)都不一样。

1、Mysql用户

  • mysql中的用户,都存储在系统数据库mysql中user表中
    其中user表中的重要字段说明:

1、host:允许登录的“位置”,localhost表示该用户只允许本机登录,也可以指定ip地址
2、user:用户名
3、authentication_string:密码,是通过mysql的password()函数加密之后的密码。

2、常用命令

1、创建用户


create user '用户名'@'允许登录位置' identified by '密码';
# 说明:创建用户,同时指定密码 
 

2、删除用户


DROP USER '用户名'@'允许登录位置';

3、用户修改密码


# 修改自己的密码
SET PASSWORD = PASSWORD('密码');
# 修改他人密码(需要有修改用户密码的权限)
SET PASSWORD FOR '用户名'@'登录位置'=PASSWORD('密码');

Mysql权限管理

1、给用户授权

基本语法


GRANT 权限列表 ON 库.对象名 TO '用户名'@'登录位置' [IDENTIFIED BY '密码']

说明

1、权限列表,多个权限使用逗号隔开

GRANT SELECT ON ...... # 给用户分配查询的权限
GRANT SELECT,DELETE,CREATE ON ...... # 给用户分配查询、删除、创建的权限
GRANT ALL [PRIVILEGES] ON ...... # 赋予该用户在该对象上的所有权限
 

2、特别说明

  • *.*:代表本系统中所有数据库的而所有对象(表、视图、存储过程)
  • 库.*:表示某个数据库中的所有数据对象(表、视图、存储过程等)

3、identified by可以省略,也可以写出

  • 如果用户存在,就是修改用户的密码
  • 如果用户不存在,就是创建该用户

2、回收用户授权

基本语法


 REVOKE 权限列表 ON 库.对象名 FROM '用户名'@'登录位置';
 

3、权限生效指令

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

基本语法


 FLUSH PRIVILEGES;
 

4、练习题

# 1、创建一个用户,密码为123 并且只可以从本地登录,不让远程登录mysql
# 2、创建库和表testdb下的news表,要求:使用root用户创建
# 3、给用户分配查看news表和添加数据的权限
# 4、测试看看用户是否只有这几个权限
# 5、使用root用户删除你的用户
1、创建一个用户,密码为123 并且只可以从本地登录,不让远程登录mysql

-- 1、创建一个用户,密码为123 并且只可以从本地登录,不让远程登录mysql
CREATE USER 'yi'@'localhost' IDENTIFIED BY '123';

在这里插入图片描述

此时重新打开一个会话,使用刚刚创建的用户登录
此时该用户只能看到系统默认的数据库

在这里插入图片描述

2、创建库和表testdb下的news表,要求:使用root用户创建

-- 2、创建库和表testdb下的news表,要求:使用root用户创建
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE news(
	id INT,
	`name` VARCHAR(32)
	);
	
-- 插入一条记录用以测试
INSERT INTO news VALUES(100,'北京新闻');
SELECT* FROM news;

在这里插入图片描述

3、给用户分配查看news表和添加数据的权限

-- 3、给用户分配查看news表和添加数据的权限
GRANT SELECT,INSERT ON testdb.news TO 'yi'@'localhost';

在这里插入图片描述
** 此时当我们去用户 yi 登录的会话中查看的时候,刷新对象浏览器,我们会发现我们可以看到数据库 testdb 以及其下的表 news **
在这里插入图片描述

4、测试看看用户是否只有这几个权限(此部分代码是在用户 yi 的会话中写的)

-- 4、测试看看用户是否只有这几个权限
SELECT * FROM news; -- 检查是否有“查看表 news” 的权限
INSERT INTO news  VALUES(200,'上海新闻'); -- 检查是否有“添加数据”的权限
SELECT * FROM news;

DELETE FROM news WHERE id=100; -- 检查是否有删除功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、使用root用户删除你的用户

-- 5、使用root用户删除你的用户
DROP USER 'yi'@'localhost';

在这里插入图片描述

Mysql管理细节

  • 在创建用户的时候如果不指定Host则为%,%表示所有IP都有链接权限 create user xxx;
  • 你也可以这样指定 CREATE USER ‘xxx’@‘192.168.1.%’ 表示xxx用户在192.168.1.* 的IP可以登录mysql
  • 在删除用户的时候,如果host不是%,需要明确指定 ‘用户’@‘host值’
  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值