SQL 详解:DCL(数据控制语言)
DCL 负责用户管理和权限控制,核心关键字:GRANT(授予)和 REVOKE(召回)。
用户管理
-- 创建用户(任意主机)
CREATE USER 'username'@'%' IDENTIFIED BY 'Password123';
-- 创建用户(指定IP段)
CREATE USER 'username'@'192.168.0.%' IDENTIFIED BY 'Password123';
-- 删除用户
DROP USER IF EXISTS 'username'@'%';
-- 重命名
RENAME USER 'old'@'%' TO 'new'@'%';
权限管理
授予权限(GRANT)
-- 单个表的查询权限
GRANT SELECT ON school.tb_college TO 'username'@'%';
-- 整库权限
GRANT SELECT, INSERT, DELETE, UPDATE ON school.* TO 'username'@'%';
-- DDL 权限
GRANT CREATE, DROP, ALTER ON school.* TO 'username'@'%';
-- 所有权限(慎用!)
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
召回权限(REVOKE)
REVOKE INSERT, DELETE, UPDATE ON school.* FROM 'username'@'%';
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'%';
FLUSH PRIVILEGES; -- 刷新权限缓存
权限速查
| 权限 | 说明 | 权限 | 说明 | |
|---|---|---|---|---|
SELECT |
查询 | CREATE |
创建 | |
INSERT |
插入 | DROP |
删除 | |
UPDATE |
更新 | ALTER |
修改表 | |
DELETE |
删除 | ALL |
全部 |
| 范围 | 说明 |
|---|---|
db.* |
整库 |
db.tbl |
单表 |
*.* |
所有 |
原则:权限最小化——只给够用的权限