SQL——数据控制语言DCL(GRANT,REVOKE,COMMIT,ROLLBACK)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-30 12:55   51   0

DCL

数据控制语言(Data Control Language,DCL)在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权。

GRANT授权

GRANT 权限1, … , 权限n ON 数据库.* TO 用户名@IP地址
// 权限、用户、数据库
//给用户分派在指定的数据库上的指定的权限

GRANT ALL ON 数据库.* TO 用户名@IP地址

//即授予所有权限

SHOW GRANTS;

//查看所有授权

表级grant只支持如下权限类型:alter、create、createview、delete、drop、grant、index、insert、references、select、show view、update.

列级grant只支持以下权限类型:insert、select、update.

REVOKE取消

REVOKE <权限> ON <对象类型> <对象名> FROM <用户>//取消用户授权

事务

数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。

事务的四个性质:

  • 原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。
  • 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。
  • 隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
  • 持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

事务的操作步骤:

  1. 设置自动提交模式关闭 set autocommit=0;
  2. 开始事务,设置事务起点 start transaction;
  3. 执行dml操作(不能写ddl语句,ddl语句会自动提交,破坏事务的完整性)
  4. commit提交或者rollback回滚
  5. 还原到默认状态set autocommit=1;

BEGIN TRANSACTION //事务开始
SQL1
SQL2
COMMIT //事务提交

ROLLBACK回滚

EOLLBACK: 回滚的意思。 就是数据库里做修改后 ( update ,insert , delete)未commit 之前 使用rollback 可以恢复数据到修改之前。

BEGIN TRANSACTION //事务开始
SQL1
SQL2
ROLLBACK //事务回滚

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP