数据库的数据定义(针对数据库或表)、数据操作和数据查询(针对表中数据)、数据控制(设置对数据库的访问权限)、事务控制(确定或者取消数据操作)
1,先补充一下,数据库对象:
数据库对象:组成数据库,包括表(数据库最基本的存储单位)、图表(数据库中表与表之间的关系)缺省值(数据库中表的列值缺少时的规定表示)、索引(方便查找到表中数据,还可以避免数据的重复)、用户(有权限访问数据库,需要登录账号和密码(没有登录账号和密码就采取系统默认))、存储过程、规则、触发器等
2,SQL语言分为五大类:
数据定义(DDL):(操作的是数据库或表)
Create、Alter、Drop 创建数据库(或表)、删除数据库(或表)、修改数据库(或表)
数据查询和操作(DQL、DML):(操作的是数据库表中的对象—操作的是数据库的数据)
DQL(数据查询语言) - Select 查询语句不存在提交问题。(Query,返回结果但并不会改变对象的状态。)
DML(数据操纵语言) - Insert、Delete、Update这些语句需要Commit才能提交。(Command,更改一个对象或整个系统的状态。)
数据控制(DCL):(授权与撤权)
授什么权 on 哪个数据库.哪个表 to 哪个用户 (Grant 授权)
撤什么权 on 哪个数据库.哪个表 from 哪个用户 (Revoke撤权)
事务控制(DTL):(是提交或撤销进行的数据操作)。
COMMIT 是提交你的DML数据操作.
ROLLBACK 是取消你的DML数据操作.
事务控制的作用就是防止数据操作发生了误操作,让操作者再次确认要进行该操作。
3,数据控制(DCL)-- 包括了 GRANT、REVOKE
用来设置数据库管理系统中的用户对于系统中的数据库或者存储在数据库中的表的访问权限。(管理数据库,包括管理权限和数据更改)
ps:因为公司有专门的数据库管理员,所以开发员很少使用!用来管理系统中的对象权限时使用。
GRANT授权
grant 语法:(grant 权限 on 数据库.对象(这里指的是表) to 用户)
语法举例1:
GRANT 权限名1,权限名2, .... on 数据库名.对象名 TO ‘用户名’@’允许其登录的地址’ identified by ‘密码’;
语法举例2:
GRANT 权限1, … , 权限n ON 数据库.* TO 用户名@IP地址
ps:
一,所有 ALL 或 *
所有权限:All privileges (privileges可以省略)
所有数据库:*
所有数据库对象(这里一般说的是表):*
二,MySQL GRANT 权限作用权限
1, 作用在整个MySQL 服务器上 GRANT ALL ON *.* TO 用户名@IP地址
2, 作用在单个数据库上 GRANT ALL ON 某个数据库名.* TO 用户名@IP地址
3, 作用在单个数据库的单个数据表上
GRANT ALL ON 某个数据库名.某张表 TO 用户名@IP地址
4, 作用在表中的某一列上
5, 作用在存储过程、函数上
三、查看 MySQL 用户权限
查看当前用户(自己)权限:
show grants;
查看其他 MySQL 用户权限:
show grants for zhangkh@localhost;
REVOKE 撤权
与GRANT 差不多,TO 改成 FROM
注意:对于授权GRANT、撤权REVOKE 某个用户,需要等到该用户重新连接数据库后才能生效。
参考了:https://blog.csdn.net/wangnanwlw/article/details/50410813 《 grant 权限 on 数据库对象 to 用户@'IP'》