网络安全快速入门(八)MySQL基础操作

8.1 MySQL用户操作

MySQL用户简介:        

        MySQL用户与Linux的用户大差不差,大致分为三类

  • 管理员用户:

        也称ROOT,也就是我们安装时候默认的用户,该用户拥有最高权限

  • 系统用户:

        该用户为创建系统自带用户,主要用于进行系统运行,一般情况下无法登录

  • 普通用户:

        也称自定义用户,安装mysql以后自己创建的用户

那么问题来了,我们如何使用MySQL创建自定义用户呢?

MySQL创建自定义用户:

可以通过下列命令进行创建

GRANT all on 库名.表名 to "用户名"@"地址" identified by "密码"

我们可以说是创建用户,也可以说是授权用户,主要作用是通过该命令可以实现用户访问并且修改数据库。具体如下:

我们来举个例子:

例子一:

授权用户tom可以通过本地连接管理所有的库和表,密码为123456

grant all on *.* to"tom"@"127.0.0.1" identified by "123456"

显示ok,说明创建成功

创建成功,我们来看一下结果

(注意,查看mysql中的user表单即可查看本机用户名称,链接地址及所属权限)

        可以看到在user表单中已经有tom字段了,说明创建成功,而后面全是y代表所属权限,说明我们已经可以使用tom去查看该数据库的所有库和表了!

做个链接测试

看连接

连接成功,说明可以登录。

(注意:127.0.0.1为本地连接端口,如果想进行其他本地连接也可以使用localhost语句进行连接)

例子二:

        授权用户tom可以通过本地连接管理所有的库和表,密码为1234567

grant all on *.* to"tom"@"localhost" identified by "1234567"

看结果

        ok了家人们,说明可以运行,我们来看user

尝试连接

尝试连接

ok了家人们,本地连接我们讲完了,接下来我们尝试从内网网段创建用户

例子三:

        授权用户dog可以通过192.168.10.254查看和管理mysql库下的所有的表,密码为123456

grant all on mysql.* to "dog"@"192.168.10.254" identified by "123456"

执行看结果

ok了家人们,我们来看看mysql库中的user表

是有的,我们尝试连接

连接成功,我们看到只有两个表,一个为MySQL,还多带了一个库,这个是正常现象。我们现在来看库里的内容

可以看到完全没问题,也看不到其他的库,我们进去看一下user

也没什么问题,说明该表可以使用。下一个

例子四:

        授权用户cat可以通过192.168.10.254只能查看和管理mysql库下user表,密码为123456

grant all on mysql.user to "cat"@"192.168.10.254" identified by "123456"

就不一个个查看了,直接进mysql

能进,这个完成

那么问题来了,我们能不能给用户增加些其他可以查看的数据?

例子五:

        在上个例子的基础上,授权用户cat可以通过192.168.10.254只能查看和管理mysql库下user表及db表,密码为123456

grant all on mysql.db to "cat"@"192.168.10.254" identified by "123456"

我们看结果

可以看到我们可以查看的到db表,说明新增授权成功。

那我不妨有个大胆的想法,我们可不可以把一开始的tom一撸到底,只能查看MySQL库中的user表呢?当然是可以的,但是!不能通过grant去实现,因为它本身就拥有了最高权限,若想去撤销用户权限,则需要用到下一个命令

MySQL撤销用户权限

撤销用户权限格式

revoke all on 库名.表名 from "用户名"@"地址"

这里我们发现了,欸!撤销他不需要密码,命令就会显得相对简单一些,老规矩,一些细节我们后面边举例边讲述

例子1

        撤销用户tom可以通过本地连接管理所有的库和表,

revoke all on *.* from "tom"@"127.0.0.1"

我们打开tom看一下

会发现tom的所有权限都丢掉了,我们进user看一下

会发现tom的名称和链接地址还在,但被一撸到底,只能登录不能进行其他操作。这就是撤销命令的作用,同样,我们撤销其他用户也是一样,只需要知道对方账户名称和ip地址即可进行撤销,但要注意的是,该命令只能通过root用户进行执行,因此请谨慎对待!!!

8.2数据库基本操作

简介

MySQL对于数据库的操作可以大体分为四类

  1.  增:添加新的行
  2.  删:删除表中的行 、 表 本 身 、 库
  3.  改:修 改
  4.  查:查 看 库 中 都 有 哪 些 表 、 表 中 的 数 据

而我们对于数据库的操作对象可以分为下列几类

  • 数据

我们接下来一个一个捋,从库开始

对库的操作
  • 查看库
  • 新建库
  • 删除库

那我们先来说一下查看库

查看库

查看所有库

格式

show detabases

我们直接演示

可以看到下面会出现一个表,分别记录着我们当前用户可操作的所有库,完工!

新建数据库:

格式

create database 库名 character set "字符集"collate "排序规则"

        因为作者才疏学浅,没有能力拓展其他字符集及排序规则。一般情况下字符集用“utf-8”,排序规则使用“utf8_general_ci”,若有其他字符集及排序规则请移步其他博客进行学习。

我们直接来举例子

例子:

        创建一个库“ku2”,字符集为utf8,排序规则为utf8_general_ci

create database ku2 character set "utf8"collate "utf8_general_ci"

创建好了我们通过show命令查看所有库

可以看到是由ku2的,命令执行成功,下一个

有关字符集的操作:
查看数据库所支持的字符集

        我们已经可以创建数据库了,但在使用时难免会有需要用到其他字符集,这个时候我们就需要用到以下命令了

show charset

通过上述命令可以查看数据库所支持的字符集及排列顺序。结果如下图

这是查看数控库所支持的字符集,那么如何查看当前数据库的字符集呢?

查看当前数据库的字符集
show create database 库名

例子:

        查看数据库db1的字符集

show create database db1

修改数据库

注意:修改数据库只能修改数据库的字符集,不能修改数据库名称

        修改数据库的字符集

格式:

alter database 库名 character set "字符集" collate "排序规则" 

例:

        将db4修改为utf8,排序规则为"utf8_general_ci“

alter database db4 character set "utf8" collate "utf8_general_ci" 

执行结果如下图

查看db4的字符集

ok,完成

删除数据库

格式

drop database 库名

我们直接上例子

例子:

        删除库“ku2”

drop database ku2

通过show命令查看

删除”ku2“,命令执行成功,

总结:

对于库的操作大致可以分为以下几类:

  • 查看:
show databases 
  • 新建:
create database 库名 character set 字符集 collate 排序规则 
  • 查看数据库所支持的字符集
show charset 
  • 查看当前数据库的字符集
show create database 库名
  • 修改数据库字符集
alter database 库名 character set "字符集" collate "排序规则" 
  • 删除
drop database 库名

8.3表的操作

针对于表的操作,我们先来了解一个小知识:

记录和字段
  • 记录:数据库文件中每一行都是一条记录
  • 字段:数据库文件中每一列为一个字段(注:每个字段只能有一个数据类型!!)

接下来我们来看一下针对于表的操作,同样,表的操作也是四大类,分为增、删、查、改、四类,大部分情况下我们还需要执行一步额外的操作,选定库,我们先来从选定库进行讲解

选定库及查看表

选定库类似于在操作系统系统中选定目录一样,因为别的库也可能有其他的同名文件,因此我们需要先选定库才可以进行操作,具体操作如下

use 库名 ;  #选定库
select database ();   #查看当前数据库
show tables    #查看选定数据库下都有哪些表

没看明白?举个例子我们实践一下可能就懂了

例子

查看hellodb中都有哪些表

use hellodb;
select database ();
show tables

看结果

我们现在就可以看到该数据库里面的全部表了,上面操作就相当于打开了文件夹,看到里面的东西了,这同样也是查看表的操作,

注意:必须先选定数据库才可以操作表格!!!!!

新建表

这里就要提到我们在本小节开头提到的东西了

  • 表中的每一行为一条记录
  • 表中每一列都是一个字段 (每个字段只能存储一种类型数据)

在这之前,我们还需要了解一些东西,

数据类型
  • int 整型:只能存储整数类型
  • float 浮点型:可以存储小数类型
  • char 字符类型:固定长度的字符,提前分配好存储空间,无论是否使用,存储空间大小不变
  • varchar:字符类型:可变长度
  • enum:枚举类型,可以理解为单选(给用户一个选择范围,用户仅仅可以选择一个)

在了解上述知识后,我们就可以去新建表了

新建表格式

create table 表名 (
字段名1 字段数据类型(数据类型长度),
字段名2 字段数据类型(数据类型长度),
字段名3 字段数据类型(数据类型长度),
字段名4 字段数据类型(数据类型长度),
)

看起来好像挺简单的样子,直接实操

例:

在db1中新建一个

表tb1

要求有三个字段,

字段1id 类型是int

字段2name 类型是char(30)

字段3age 类型是int

use db1;
create table tb1(
id int,
name char(30),
age int)

我们来看结果

可以看到,表已经创建成功了,在创建成功后,我们就可以做下面操作了

查看表结构

这里先操作,完了做讲解

格式

use 库名;
desc 表名

直接举例讲结果

查看db1中的tb1表的表结构

use db1;
desc tb1

直接执行

可以看到,执行结果是将三个字段变成了三条记录,该表字段解释如下

  • field:表示这个表中有几个字段,分别叫什么名字
  • type:表示每个字段的数据类型
  • null:下面的值有两中(yes|noyes表示这个字段可以为空,no就是不可以
  • key:表示哪个字段是主键
  • default:默认值,如果没有些内容,表示没有设置默认值
  • extra:表示每个字段的额外的属性有哪些
删除表

这里就不多做解释了,删除表

格式

drop table 表名

删除db1下的tb1表

use db1;
drop table tb1

看结果

我们查询一下

确实没有表,说明命令执行成功,完成

总结
  • 选定库及查看表格式
use 库名 ; 
select database ();   
show tables
  • 新建表格式
create table 表名 (
字段名1 字段数据类型(数据类型长度),
字段名2 字段数据类型(数据类型长度),
字段名3 字段数据类型(数据类型长度),
字段名4 字段数据类型(数据类型长度),
)
  • 查看表结构
use 库名;
desc 表名
  • 删除表
use 库名;
drop table 表名

这里我不知道大家有没有发现一个比较有意思的东西,对于表的操作与对于库的操作如出一辙,只是后面有了些改动,本章的内容就到这里了,如果有错误还望各位大佬积极指出,感谢各位的观看0..0

 

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值