账号有了,该发权限了
建号只给了一张门禁卡,卡能开哪些门要另说。

重 点
新建的账号只有 USAGE,能登录,别的一件都干不了。
想一想
USAGE 到底代表什么?
建号只给了一张门禁卡,卡能开哪些门要另说。

新建的账号只有 USAGE,能登录,别的一件都干不了。
USAGE 到底代表什么?
管理、库、库对象、函数与存储过程。

| 类别 | 典型的一项 |
|---|---|
| 管理权限 | CREATE USER |
| 对象权限 | SELECT |
管理权限只能授到全局,对象权限可以授到库、表、字段三级。
SELECT 属于哪一类?
给什么、在哪一级、给谁、许不许再转出去。

ON 后面写什么,就决定了这一条记进四张权限表里的哪一张。
课件说存储过程权限记进 routines_priv,实际那张表叫 mysql.procs_priv。
ON *.* 是哪一级?
两个例子,一个全给还能转授,一个只给三项。

范围一层层收窄,语法只差一个星号。

字段名写在权限关键字后面的括号里。

字段级只有 SELECT、INSERT、UPDATE 三种,别的写了就是语法错。
MySQL 8 不许一边授权一边把用户建出来,先 CREATE USER 才能 GRANT。
为什么星号查询会被字段级挡住?
选账号、选库、勾权限,按 Apply。

All Schema 那一项就是 ON *.*,Selected schema 才是某一个库。
勾选框其实就是 GRANT 的权限名清单,勾一个就多一句 GRANT。
这张图是下一节角色的引子。

把常一起用的几项权限装进一个口袋,发给人的时候发口袋。
如果只有三五个人,用不用角色?
一行是一条授权,从大到小排下来。

第一行 USAGE 是建号时白送的,代表除了登录什么都不能干。
看不到别人的权限是什么原因?
别的层次、别的对象一动不动。

本来就没授过的收不回,会报 1141 或者 1147。
怎样一句话把某人的权限收干净?
有了它,拿到权限的人能再往下发。
