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

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

时间:2023-09-17 15:34:10浏览次数:32  
标签:DCL 执行 REVOKE GRANT 数据库 事务 回滚 权限

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   //事务回滚

标签:DCL,执行,REVOKE,GRANT,数据库,事务,回滚,权限
From: https://blog.51cto.com/u_16252300/7502062

相关文章

  • 完美解决Python词云库wordcloud不显示中文问题
    你的Python词云库wordcloud显示的都是方框吗?别担心,我有一个妙招让你的中文词云变得美观又清晰!背景:wordcloud是一个基于python的词云生成库,它可以让你用简单的代码创建出各种形状和颜色的词云图像wordcloudgithub地址:https://github.com/amueller/word_cloudwordcloud\(\color......
  • MySQL入门系列2-数据控制语言(DCL)
    一、概念DCL数据控制语言,用来管理数据库用户、控制数据库的访问权限。二、查询用户select*frommysql.user;其中Host代表当前用户访问的主机,如果为localhost,代表只能够在当前本机访问,不可以远程访问的。User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯......
  • ORA-01031: insufficient privileges 19c跨用户视图查询 with grant option
    问题概述某客户从11.2.0.1升级迁移到19.16版本后,应用反应部分查询功能无法使用报无权限,数据库中增加了ORA-01031:insufficientprivileges跟踪event进行分析问题复现创建三个测试用户createusertest1identifiedbyoracle123;createusertest2identifiedbyoracle123;......
  • python3.6使用wordcloud 1.9报错ValueError: Only supported for TrueType fonts
    该版本的wordcloud的源码中显示不兼容python3.6 解决办法:修改wordcloud源码修改前508:box_size=draw.textbox((0,0),word,font=transposed_font,anchor="lt")510:result=occupancy.sample_position(box_size[3]+self.margin,......
  • DCL-权限控制
      ......
  • unity在使用了HybridCLR进行编译时报错
    unity在使用了HybridCLR执行HybridCLR/Generate/All时,一直不成功,提示pleasefirstuse"HybridCLR/Generate/All"后面还有fatalerror:'icalls/mscorlib/System/MonoType.h'filenotfound#include"icalls/mscorlib/System/MonoType.h"每次执行HybridCLR/Gener......
  • MySQL基本SQL语句4(DCL)
    前言DCL英文全称是DataControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问权限。一、DCL用户管理1.查询用户select*frommysql.user; Host代表当前用户访问的主机,如果为localhost,仅代表只能够在当前本机访问,是不可以远程访问的。User代表的是访问该数......
  • vagrant实战爬坑
    为什么要用到这个技术?简单来说,vagrant是一个操作虚拟机的工具。它提供了一套高效而便利的虚拟机管理方式,通过命令和配置文件,当然也要基于vagrant自身的约定,就能很快的完成一套开发环境的部署,并可以打包传播,极大的方便了在工作环境中,各个开发环境不一致的问题,也解决了重复配置环......
  • MySQL-基础篇 ( SQL-DML + DQL + DCL )
    MySQL-基础篇(SQL-DML+DQL+DCL)目录MySQL-基础篇(SQL-DML+DQL+DCL)SQLDML添加数据INSERT修改数据UPDATE删除数据DELETEDQL语句编写顺序基本查询条件查询(WHERE)聚合函数(count、max、min、avg、sum)分组函数(GROUPBY)排序查询(ORDERBY)分页查询(......
  • vagrant常用命令
    vagrant--version#查看vagrant版本vagrantboxlist#查看box列表vagrantboxadd[boxname][url]#添加boxvagrantboxremove[boxname]#移除boxvagrantboxupdate#更新boxvagrantboxrepackage[......