【lesson32】MySQL用户管理

文章目录

  • 用户管理介绍
  • 用户
    • 用户信息
    • 创建用户
  • 删除用户
  • 修改用户密码
  • 数据库的权限
    • 给用户授权
    • 回收权限

用户管理介绍

在这里插入图片描述

用户

用户信息

MySQL中的用户,都存储在系统数据库mysql的user表中

//操作语法
mysql> use mysql;
Database changed
mysql> select host,user,authentication_string from user;

在这里插入图片描述
字段解释:

  • host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
  • user: 用户名
  • authentication_string: 用户密码通过password函数加密后的
  • *_priv: 用户拥有的权限

创建用户

//操作语法
create user '用户名'@'登陆主机/ip' identified by '密码';

案例;
在这里插入图片描述
我们查看user表
在这里插入图片描述
user表中确实多了一个用户;
我们尝试用该用户登入
在这里插入图片描述
发现确实也能登入。
但是只能在本地登入,不能远程登入。

想要在任意主机登入,得用下列语句创建一个用户。

create user 'lzf' @'%' identified by '123456';

这里就不演示了。

删除用户

drop user '用户名'@'主机名'

在这里插入图片描述

修改用户密码

自己改自己密码

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

root用户修改指定用户的密码

set password for '用户名'@'主机名'=password('新的密码')

用update修改密码

update user set authentication_string = password('11111') where user = 'lzf';

因为用户的信息是被管理在user表中的,所以我们可以直接该user表中的密码。
同样我们也可以直接对user表进行用户的增删查改。

数据库的权限

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

给用户授权

语法:

grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']

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

grant select on ...
grant select, delete, create on ....
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限
  • *.**: 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
  • 库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
  • identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

案例:

--使用root账号
--终端A
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 57test |
| bit_index |
| ccdata_pro |
| innodb_test |
| musicserver |
| myisam_test |
| mysql |
| order_sys |
| performance_schema |
| scott |
| sys |
| test |
| vod_system |
+--------------------+
14 rows in set (0.00 sec)
mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| account |
| student |
| user |
+----------------+
3 rows in set (0.01 sec)--给用户lzf赋予test数据库下所有文件的select权限
mysql> grant select on test.* to 'lzf'@'localhost';
Query OK, 0 rows affected (0.01 sec)
--使用lzf账号
--终端B
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
--暂停等root用户给whb赋完权之后,在查看
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test | --赋完权之后,就能看到新的表
+--------------------+
2 rows in set (0.01 sec)
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| account |
| student |
| user |
+----------------+
3 rows in set (0.00 sec)
mysql> select * from account;
+----+--------+---------+
| id | name | blance |
+----+--------+---------+
| 2 | 李四 | 321.00 |
| 3 | 王五 | 5432.00 |
| 4 | 赵六 | 543.90 |
| 5 | 赵六 | 543.90 |
+----+--------+---------+
4 rows in set (0.00 sec)
--没有删除权限
mysql> delete from account;
ERROR 1142 (42000): DELETE command denied to user 'whb'@'localhost' for table 'account'
备注:特定用户现有查看权限
mysql> show grants for 'lzf'@'%';
+-----------------------------------------------+
| Grants for lzf@% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'lzf'@'%' |
| GRANT ALL PRIVILEGES ON `test`.* TO 'lzf'@'%' |
+-----------------------------------------------+
2 rows in set (0.00 sec)
mysql> show grants for 'root'@'%';
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)

注意:如果发现赋权限后,没有生效,执行如下指令:

flush privileges;

回收权限

语法:

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置'

案例

-- 回收lzf对test数据库的所有权限
--root身份,终端A
mysql> revoke all on test.* from 'lzf'@'localhost';
Query OK, 0 rows affected (0.00 sec)
--lzf身份,终端B
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序封装wx.request以及小程序登录

1.封装wx.request const GET GET; const POST POST; const PUT PUT; const FORM FORM; const DELETE DELETE;const baseURL https://alimini.ck9696.com/wxmall; // const baseURL http://192.168.0.17:8601/wxmall; var app getApp(); function request(method, url…

VR全景技术可以应用在哪些行业,VR全景技术有哪些优势

引言: VR全景技术(Virtual Reality Panorama Technology)是一种以虚拟现实技术为基础,通过360度全景影像、立体声音、交互元素等手段,创造出沉浸式的虚拟现实环境。该技术不仅在娱乐领域有着广泛应用,还可…

ABAC模型简单介绍——通过casbin进行简单举例

ABAC模型简单介绍——通过casbin进行简单举例 文章目录 ABAC模型简单介绍——通过casbin进行简单举例定义相关术语Casbin实现ABAC(Python版)假设情境定义对象定义静态模型模板测试代码最终结果 相关链接 定义 Attribute Based Access Control (基于属性…

Git使用命令大全

命令大全参考阮一峰的博客,根据自己的使用习惯作了调整。 Git常用命令 其他常用的命令 配置Git # 显示当前的Git配置 $ git config --list# 编辑Git配置文件 $ git config -e [--global]# 设置提交代码时的用户信息 $ git config [--global] user.name "[nam…

第14章_视图

第14章_视图 1.常见的数据库对象 对象描述表(TABLE)表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录数据字典就是系统表,存放数据库相关信息的表。系统表的数据通常由数据库系统维护, 程序员通常不…

MDK Keil uVision5 cannot read project file 解决办法

MDK Keil uVision5 cannot read project file 解决办法 问题描述 我的系统重装过后是英文版的Windows 10,在打开别人/以前中文系统环境下保存的Keil Project文件(uvprojx文件)会报错,内容大致是 Cannot read project file D:\xx…

JAVA生成Word文档

第一步&#xff1a;导入依赖 <!--生成word文档--> <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.10.3</version> </dependency> <!--数字转为汉字大写--> <depend…

《代码之丑》学习笔记18——写代码是一件可以一生精进的事

结束语 | 写代码是一件可以一生精进的事 文章目录 结束语 | 写代码是一件可以一生精进的事代码的敏感度 在很多人心目中&#xff0c;程序员是一个辛苦的职业&#xff0c;一方面&#xff0c;各种新东西层出不穷&#xff0c;程序员们要努力追随&#xff0c;另一方面&#xff0c;业…

十、VTK创建圆锥体vtkConeSource 带颜色

为圆锥体的每一面,添加一种颜色: 上述效果的代码: #include <vtkSmartPointer.h> #include <vtkPoints.h> #include <vtkLine.h> #include <vtkPolyData.h> #include <vtkPolyDataWriter.h> #include <vtkPolyDataMapper.h> #incl…

机器学习复习(6)——numpy的数学操作

加减法运算 # 创建两个不同的数组 a np.arange(4) #list(0,1,2,3 b np.array([5,10,15,20]) # 两个数组做减法运算 b-a 运行结果&#xff1a; 计算数组的平方 #b*2代表数组b每个元素乘以2 #b**2代表数组b每个元素的2次方 b**2 运行结果&#xff1a; 计算数组的正弦值 #…

Java 数据结构 二叉树(二)红黑树

目录 数据结构图-树 简介 规则 旋转 重新着色 红黑树构建过程 前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0c;我们往往容易陷入工作的漩涡&#xff0c;忘记了停下脚步&#xf…

UnityShader(十五)纹理的属性

目录 面板属性&#xff1a; 多级渐远纹理技术&#xff08;mipmapping&#xff09; Filter Mode&#xff08;滤波模式&#xff09; 面板属性&#xff1a; 在Unity中导入一些纹理资源后可以在它的材质面板上调整其属性 如图&#xff1a; 在这个面板上有许多可以调整的属性&am…

Python的作用域

Python中的作用域是用来确定变量和函数的作用范围和生命周期的规则。在Python中&#xff0c;有四种类型的作用域&#xff1a;局部作用域、外层作用域、全局作用域和内置作用域。 一&#xff1a;局部作用域 在函数内部定义的所有变量都属于局部作用域。这些变量只能在该函数内…

西瓜书学习笔记——核化线性降维(公式推导+举例应用)

文章目录 算法介绍实验分析 算法介绍 核化线性降维是一种使用核方法&#xff08;Kernel Methods&#xff09;来进行降维的技术。在传统的线性降维方法中&#xff0c;例如主成分分析&#xff08;PCA&#xff09;和线性判别分析&#xff08;LDA&#xff09;&#xff0c;数据被映…

C++学习Day03之构造函数的调用规则

目录 一、程序及输出1.1 编译器会给一个类 至少添加3个函数1.2 自己提供了 有参构造函数1.3 自己提供了 拷贝构造函数 二、分析与总结 一、程序及输出 1.1 编译器会给一个类 至少添加3个函数 编译器会给一个类 至少添加3个函数 默认构造&#xff08;空实现&#xff09; 析构函…

QCoro: Qt C++ 20 协程库介绍

C20 推出了协程的实现&#xff08;coroutines&#xff09;。虽然开发一个支持协程特性的类库还是要花很多功夫的&#xff0c;但是使用一个开发好的类库则是非常嗨。这也是C 委员会一贯的原则&#xff1a; 如果你是类库开发者&#xff0c;必须足够有耐心学习拗口的特性。但如果…

MySQL分区的优缺点

前言 数据库中的分区技术为处理大规模数据提供了一种有效的手段&#xff0c;通过将数据划分成更小的可管理单元&#xff0c;我们能够提高查询性能、简化数据维护并更灵活地管理存储空间。然而&#xff0c;在采用分区时&#xff0c;我们必须认真考虑分区键的选择和实施细节&…

vue封装滚动表格

1.组件的使用 <div style"height:93%; overflow: hidden;"> <autoScroll :data"shortageList" :speed"0.5" :waitTime"500" :singleHeight"100" v-if"shortageList.length>0"><el-row v-for…

ACM训练题:曲线

这题只需要注意一个点&#xff0c;就是所有二次函数的二次系数都是大于0的&#xff0c;这说明这是个下凸函数&#xff0c;而且最小值旁边都是单调的&#xff0c;对于求区间凸函数极值问题&#xff0c;套三分模板即可。 AC代码&#xff1a; #include<bits/stdc.h> usin…

2023年全球软件开发大会(QCon上海站2023):核心内容与学习收获(附大会核心PPT下载)

在信息化和全球化日益加速的今天&#xff0c;软件开发技术日新月异&#xff0c;对全球各行各业产生了深远影响。2023年全球软件开发大会&#xff08;QCon上海站2023&#xff09;无疑成为行业内外瞩目的焦点。本次大会汇集了全球顶级的软件开发专家、企业领袖、研究者&#xff0…