
MySQL基础:DCL
发布日期:2021-05-07 15:15:42
浏览次数:21
分类:原创文章
本文共 2016 字,大约阅读时间需要 6 分钟。
目录
DCL (Data Control Language)
- DDL: create / alter / drop
- DML:insert /update/delete
- DQL :select /show
- DCL :grant /revoke
概念
- 现在默认使用的都是 root 用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。
- mysqld 是 MySQL 的主程序,服务器端。
- mysql 是 MySQL 的命令行工具,客户端。
创建用户
- 语法:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
- 关键字说明
关键字说明 '用户名' 将创建的用户名'主机名' 指定该用户在哪个主机上可以登陆,如果是本地用户可用 localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%'密码' 该用户的登陆密码,密码可以为空,如果为空 '密码' 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
- 具体操作:
- 创建 user1 用户,只能在 localhost 这个服务器登录 mysql 服务器,密码为 123
create user 'user1'@'localhost' identified by '123';
- 创建 user2 用户可以在任何电脑上登录 mysql 服务器,密码为 123
create user 'user2'@'%' identified by '123';
- 注:创建的用户名都在 mysql 数据库中的 user 表中可以查看到,密码经过了加密。
给用户授权
- 用户创建之后,没什么权限,需要给用户授权
- 语法:
GRANT 权限 1, 权限 2... ON 数据库名.表名 TO '用户名'@'主机名';
- 关键字说明:
关键字说明 GRANT…ON…TO 授权关键字权限 授予用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等。如果要授予所有的权限则使用 ALL 数据库名.表名 该用户可以操作哪个数据库的哪些表。如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.* '用户名'@'主机名' 给哪个用户授权,注:有 2 对单引号
- 具体操作:
- 给 user1 用户分配对 test 这个数据库操作的权限:创建表,修改表,插入记录,更新记录,查询
grant create,alter,insert,update,select on test.* to 'user1'@'localhost';
- 注:
- 用户名和主机名要与上面创建的相同,要加单引号。
- 给 user2 用户分配所有权限,对所有数据库的所有表
grant all on *.* to 'user2'@'%';
撤销授权
- 语法:
REVOKE 权限 1, 权限 2... ON 数据库.表名 from '用户名'@'主机名';
关键字说明 REVOKE…ON…FROM 撤销授权的关键字权限 用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等,所有的权限则使用 ALL 数据库名.表名 对哪些数据库的哪些表,如果要取消该用户对所有数据库和表的操作权限则可用*表示,如*.* '用户名'@'主机名' 给哪个用户撤销,注:有 2 对单引号
- 具体操作:
- 撤销 user1 用户对 test 数据库所有表的操作的权限
revoke all on test.* from 'user1'@'localhost';
查看权限
- 语法:
SHOW GRANTS FOR '用户名'@'主机名';
- 具体操作:
- 查看 user1 用户的权限
- 注:
- usage 是指连接(登陆)权限,建立一个用户,就会自动授予其 usage 权限(默认授予)。
删除用户
- 语法:
DROP USER '用户名'@'主机名';
- 具体操作:
- 删除 user2
drop user 'user2'@'%';
修改管理员密码
- 语法
mysqladmin -uroot -p password 新密码
- 注意:
- 需要在未登陆 MySQL 的情况下操作,新密码不需要加上引号。
- 具体操作:
- 将 root 管理员的新密码改成 123456
- 要求输入旧密码
- 使用新密码登录
修改普通用户密码
- 语法:
set password for '用户名'@'主机名' = password('新密码');
- 注意:
- 需要在登陆 MySQL 的情况下操作,新密码要加单引号
- 具体操作:
- 将'user1'@'localhost'的密码改成'666666'
- 使用新密码登录,老密码登录不了
- 【注】参考黑马MySQL教程
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月24日 09时32分00秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
windows环境利用start命令实现微信多开
2019-03-04
「CF149D」括号涂色 区间DP好题
2019-03-04
树状数组 模板总结
2019-03-04
「NOI2015」程序自动分析 并查集题解
2019-03-04
[JSOI2008]Blue Mary的战役地图 Hash题解
2019-03-04
Ubuntu修改终端上显示的用户名和主机名(详细步骤)
2019-03-04
教你写一手漂亮的伪代码(详细规则&简单实例)
2019-03-04
MySQL数据备份实践和整理
2019-03-04
结构型设计在工作中的一些经验总结
2019-03-04
如何提升员工体验 助力企业业务增长?这个棘手的问题终于被解决了!
2019-03-04
腾讯物联网操作系统正式开源,最小体积仅1.8 KB
2019-03-04
不懂数据库的码农不是好程序员!
2019-03-04
全球首个!阿里云开源批流一体机器学习平台Alink……
2019-03-04
必须要看的网上冲浪安全攻略!
2019-03-04
红点中国、红杉中国联合领投,WakeData惟客数据完成1000万美元B轮融资
2019-03-04
OpenStack发布Ussuri版本 实现智能开源基础设施的自动化
2019-03-04
整理了一份 Docker系统知识,从安装到熟练操作看这篇就够了 | 原力计划
2019-03-04
2020 AI 产业图谱启动,勾勒中国 AI 技术与行业生态
2019-03-04
“编程能力差,90%输在了数学上!”CTO:多数程序员都是瞎努力!
2019-03-04
我是程序员,我用这种方式铭记历史
2019-03-04