数据库原理与应用 第 8 章 · 上机一
课程第 8 章上机一 认认门建第一个一次两个加个限制重名会怎样直接写系统表换人登录连起来做 版式
第 8 章 数据库安全性管理 · 上机一

建用户与查用户

七道题走一遍建号、查号、重名和第一次换人登录。
已完成 0 / 7
本 次 上 机 题 目
  1. 01先看清楚服务器上有谁
  2. 02建一个只能本机登录的账号
  3. 03一句话建两个账号,其中一个用随机口令
  4. 04建号时就把每小时能查多少次定下来
  5. 05同一个名字加同一个主机建两次
  6. 06课件那句 INSERT INTO mysql.user 到底行不行
  7. 07用新账号进去,看它能干什么
  8. 从零建一个账号并确认它的身份
01
第 8 章 · 上机一

先看清楚服务器上有谁

刚装好的服务器只有 root 和三个系统账号。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

mysql. 开头那三个是 MySQL 自己用的内置账号,一个都不要删。

知道更多

真机的 mysql.user 有五十来列,这里只留了最能说明问题的十五列。

想一想

现在这个会话是谁?

02
第 8 章 · 上机一

建一个只能本机登录的账号

CREATE USER 只是建号,它一项权限都不会给。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

SHOW GRANTS 只有 USAGE 一行,USAGE 的意思就是「只能登录」。

练一练

把主机写成 localhost,这个账号从别的机器连得上吗?
  1. A连得上
  2. B连不上
  3. C看有没有授权
答案 B

主机是账号的一半,写死 localhost 就只认本机这一条路。

03
第 8 章 · 上机一

一句话建两个账号,其中一个用随机口令

不同账号之间用逗号隔开,各写各的口令。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

随机口令只在建号这一次打出来,当场不抄下来就再也找不回。

分清楚两个主机差在哪

写法谁连得上
%任何机器
192.168.1.23只有那一台
04
第 8 章 · 上机一

建号时就把每小时能查多少次定下来

WITH 后面那几个 MAX_ 是给账号上的流量闸。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

没写 @主机 就默认 %,所以 teacher5 的 Host 一栏是一个百分号。

想一想

查够 60 次以后再查会怎样?

05
第 8 章 · 上机一

同一个名字加同一个主机建两次

第一句报 1396,第二句加了 IF NOT EXISTS 就只给个警告。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

账号的身份证是「名字 + 主机」两样合起来,缺一样都不算同一个。

知道更多

第三句成功了,因为 student@% 和 student@localhost 本来就是两个号。

06
第 8 章 · 上机一

课件那句 INSERT INTO mysql.user 到底行不行

在 MySQL 8 里这条路基本走不通,看清楚为什么。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

课件第 20 页那句还漏了一个逗号,真机上先报的是 1064 语法错。

知道更多

口令存的是 caching_sha2 哈希,sha() 算出来的存进去谁也登不上。

07
第 8 章 · 上机一

用新账号进去,看它能干什么

能登录,但一个库都进不去。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

CURRENT_USER 是账号本身写的 %,USER 是你实际从哪儿连进来的。

记牢它记牢它

  1. 建号只是建号
  2. 权限要另给

想一想

USE teaching 报的是几号错?

第 8 章 · 上机一

从零建一个账号并确认它的身份

把上面几步串成一条完整流程,中间不看答案。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

先 DROP IF EXISTS 再 CREATE,这样重跑多少遍都不会报错。

知道更多

这一段留着,上机二第一题还要用同样的手法把账号补回来。

保山学院·人工智能教研室·曹鼎鼎