《SQL与数据库基础》05. SQL-DCL
本文以 MySQL 为例
DCL
用户管理
查询有哪些用户:
1、
USE mysql;
SELECT * FROM user;
2、
SELECT * FROM mysql.user;
注:
在 MySQL 中,用户保存在 mysql 库中的 user 表中。
创建用户:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
修改用户密码:
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
删除用户:
DROP USER '用户名'@'主机名';
注:
在 MySQL 中需要通过“用户名@主机名”的方式,来唯一标识一个用户。
主机名可以使用 % 通配。
DCL 主要是 DBA(Database Administrator 数据库管理员)使用。
示例:
# 创建用户xiaoming,只能够在当前主机localhost访问,密码123456
CREATE USER 'xiaoming'@'localhost' IDENTIFIED BY '123456';
# 创建用户xiaohong, 可以在任意主机访问该数据库, 密码123456
CREATE USER 'xiaohong'@'%' IDENTIFIED BY '123456';
# 修改用户xiaohong的访问密码为1234
ALTER USER 'xiaohong'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
# 删除 xiaoming@localhost 用户
DROP USER 'xiaoming'@'localhost';
权限控制
查询权限:
SHOW GRANTS FOR '用户名'@'主机名';
授予权限:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
撤销权限:
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
注:
多个权限之间,使用逗号分隔。
授权时,数据库名和表名可以使用 * 进行通配,代表所有。
MySQL中定义了多种权限,常见的为以下几种:
==================================================
权限 | 说明
--------------------------------------------------
ALL 或 ALL PRIVILEGES | 所有权限
SELECT | 查询数据
INSERT | 插入数据
UPDATE | 修改数据
DELETE | 删除数据
ALTER | 修改表
DROP | 删除数据库/表/视图
CREATE | 创建数据库/表
==================================================
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构