MySQL 的数据组织是有明确层级的,从高到低如下:
实例(Instance)
└── 数据库(Database / Schema)
└── 表(Table)
└── 行(Row)
创建数据库命令:
CREATE DATABASE myshop;
访问/使用数据库:
USE myshop;
MySQL 支持 细粒度的权限控制:
| 范围 | 示例权限设置 |
| 整个服务器 | 拒绝某个用户连接 MySQL |
| 某个数据库 | GRANT ALL ON myshop.* TO 'alice'@'localhost'; |
| 某张表 | GRANT SELECT ON myshop.orders TO 'bob'@'localhost'; |
| 某列 | GRANT SELECT(name) ON myshop.customers TO 'tom'@'localhost';(较少用) |
| 某操作类型 | GRANT INSERT, SELECT ON …(控制能不能写) |
可以在一个 MySQL 实例中为不同项目创建独立数据库:
CREATE DATABASE app1; CREATE DATABASE app2;
然后为每个数据库分配不同用户权限,实现项目级隔离。