浅析drop user与delete from mysql.user的区别

drop  user 会将该用户的信息全部删掉,而 delete  只会清除user表,其他的比如db表中的信息还是存在。
如果delete 后,再创建一个最小权限的用户,那么他会重用以前的权限。
grant all on test.* to 'test'@'%' identified by 'test';
delete  from user  where  user =test;
差看db 表
mysql> select * from db;
+------+---------+------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
| Host | Db      | User | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Create_tmp_table_priv | Lock_tables_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Execute_priv | Event_priv | Trigger_priv |
+------+---------+------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
| %    | test    |      | Y           | Y           | Y           | Y           | Y           | Y         | N          | Y               | Y          | Y          | Y                     | Y                | Y                | Y              | Y                   | N                  | N            | Y          | Y            |
| %    | test\_% |      | Y           | Y           | Y           | Y           | Y           | Y         | N          | Y               | Y          | Y          | Y                     | Y                | Y                | Y              | Y                   | N                  | N            | Y          | Y            |
| %    | test    | test | Y           | Y           | Y           | Y           | Y           | Y         | N          | Y               | Y          | Y          | Y                     | Y                | Y                | Y              | Y                   | Y                  | Y            | Y          | Y            |
+------+---------+------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
3 rows in set (0.00 sec)
test  的权限依然存在
创建一个只有select 的 用户test
grant select  on test.* to 'test'@'%' identified by 'test';
mysql> select * from db;
+------+---------+------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
| Host | Db      | User | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Create_tmp_table_priv | Lock_tables_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Execute_priv | Event_priv | Trigger_priv |
+------+---------+------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
| %    | test    |      | Y           | Y           | Y           | Y           | Y           | Y         | N          | Y               | Y          | Y          | Y                     | Y                | Y                | Y              | Y                   | N                  | N            | Y          | Y            |
| %    | test\_% |      | Y           | Y           | Y           | Y           | Y           | Y         | N          | Y               | Y          | Y          | Y                     | Y                | Y                | Y              | Y                   | N                  | N            | Y          | Y            |
| %    | test    | test | Y           | Y           | Y           | Y           | Y           | Y         | N          | Y               | Y          | Y          | Y                     | Y                | Y                | Y              | Y                   | Y                  | Y            | Y          | Y            |
+------+---------+------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
3 rows in set (0.00 sec)
权限和以前的一样。

(0)

相关推荐

  • 浅析删除表的几种方法(delete、drop、truncate)

    delete from 表名: 删除所有记录,表结构还在,写日志,可以恢复的,速度慢 drop talbe 表名: 删除表的结构和数据 truncate talbe 表名 删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快

  • MySQL删除数据Delete与Truncate语句使用比较

    空mysqll表内容常见的有两种方法:一种delete,一种是truncate . 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容.效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据. 其语法结构为: 复制代码 代码如下: TRUNCATE [TABLE] tbl_name 这里简单的给出个示例, 我想删除 friends 表中所有的记录,可以使用如下语句: 复

  • 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)

    数据库删除语句的分别介绍: Delete:用于删除表中的行(注:可以删除某一行:也可以在不删除表的情况下(即意味着表的结构.属性.索引完整)删除所有行) 语法:删除某一行:Delete From 表名称 Where 列名称=值 删除所有行: Delete From 表名称 或 Delete * From 表名称 Drop:用于删除表(注:将表的结构.属性.索引也会被删除.) 语法:Drop Table 表名称 Truncate:用于删除表内的数据(注:仅删除表内的数据,不删除表本身,相当于Del

  • 详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始

    不同点:  1. truncate和 delete只删除数据不删除表的结构(定义)      drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的 存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger, 执行的时候将被触发.     truncate,drop是ddl, 操作立即生效,原数据不放到ro

  • t-sql清空表数据的两种方式示例(truncate and delete)

    复制代码 代码如下: TRUNCATE TABLE (Transact-SQL) Removes all rows from a table without logging the individual row deletions. TRUNCATE TABLE is similar to the DELETE statement with no WHERE clause; however, TRUNCATE TABLE is faster and uses fewer system and t

  • oracle数据库删除数据Delete语句和Truncate语句的使用比较

    当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍. 一.delete语句 (1)有条件删除 语法格式:delete [from] table_name [where condition]; 如:删除users表中的userid为'001'的数据:delete from users where userid='001'; (2)无条件删除整个表数据 语法格式:delete table_name; 如:删除user

  • sqlserver 日志恢复方法(搞定drop和truncate)

    --1 use master backup database logTest to disk='D:\\Program Files\\Microsoft SQL Server\\MSSQL10.MSSQLSERVER\\MSSQL\\Backup\\logTest.bak' with format --2 use logTest create table table_1(Id int, test varchar(max)) insert table_1(Id,test) values (1,'3

  • delete from 表名与truncate table 表名区别

    1.delete不能使自动编号返回为起始值.但是truncate能使自动增长的列的值返回为默认的种子 2.truncate只能一次清空,不能按条件删除.但是delete可以按条件清除部分记录. 3.truncate清空数据表性能(速度)比delete快. 4.truncate不会记录到系统日志,不会触发delete触发器.

  • drop,truncate与delete的区别

    注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作会放到rollback segement中,

  • 浅析drop user与delete from mysql.user的区别

    drop  user 会将该用户的信息全部删掉,而 delete  只会清除user表,其他的比如db表中的信息还是存在.如果delete 后,再创建一个最小权限的用户,那么他会重用以前的权限.grant all on test.* to 'test'@'%' identified by 'test';delete  from user  where  user =test;差看db 表mysql> select * from db;+------+---------+------+------

  • 浅析Oracle和Mysql分页的区别

    一.Mysql使用limit分页 select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSize PS: (1)第一个参数值m表示起始行,第二个参数表示取多少行(页面大小) (2)m= (2-1)*10+1,n=10 ,表示 limit 11,10从11行开始,取10行,即第2页数据. (3)m.n参数值不能在语句当中写计算表达式,写到语句之前必须计算好值. 二.Oracle使用rownum分页 select * f

  • 浅谈MySQL和MariaDB区别(mariadb和mysql的性能比较)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险. MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品. MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入

  • 详谈MySQL和MariaDB区别与性能全面对比

    MariaDB数据库介绍 MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险. MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品. MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL卖给了SUN,此后,随着SUN被甲骨文收购

  • sql与mysql有哪些区别

    什么是SQL? SQL是一种用于操作数据库的语言.SQL是用于所有数据库的基本语言.不同数据库之间存在较小的语法更改,但基本的SQL语法基本保 持不变.SQL是S tructured Q uery Language 的简短缩写.根据ANSI(美国国家标准协会),SQL是操作关系数据库管理系统的标准 语言. SQL用于访问,更新和操作数据库中的数据.它的设计允许管理RDBMS中的数据,例如MYSQL.SQL语言还用于控制数据访问以及数据 库模式的创建和修改. 什么是MYSQL? MySQL是在90

  • 浅析java中String类型中“==”与“equal”的区别

    一.前言 1.1.首先很多人都知道,String中用"=="比较的是地址,用equals比较的是内容,很多人对此用的是记忆法,通过记忆来加强此的引用,但是其真正的原理其实并不难,当我们真正明白其为什么的时候,用起来也会更加灵活,更加有底气(形容得不太好,朋友别见怪): 二相关知识的准备 类型常量池 运行时常量池 字符串常量池 我们今天讨论的主题是当然是字符串常量池: 为什么在这要把另外两个常量池拿出说一下呢,首先小生我在网上或者cnds上看到很多人在争论字符串常量池是存在与方法区还是堆

  • 浅析Python字符串中的r和u的区别

    目录 1.r(R) 2.u(U) 补充 参考文献 Python中字符串前面我们经常看到加r(R)或u/(U)的前缀,而这两个符号是什么意思呢? 1.r(R) r意为raw,表示不包含转义字符的原生字符串.常见的转义字符包括下列几种: 转义字符 描述 \(在行尾时) 续航符 \\ 反斜杠符号 ' 单引号(字符串需要为""形式) " 双引号(需要字符串用需要为''形式) \b 退格(Backspace) \000 空 \n 换行 \v 纵向制表符 \t 横向制表符 下面是几个转义

  • 浅析Golang切片截取功能与C++的vector区别

    目录 1. 引言 2.分析过程 2.1 s[:]的方式截取元素 2.2 append的方式截取元素 3. 结论 浅析golang切片截取(删除)功能 1. 引言 golang的切片被认为是和C++的vector容器类似,都可以认为是动态数组,但又不完全一样. 那么区别到底在哪里呢?对元素的删除方式是很重要的一点区别 对于C++的vector来说,用erase函数来删除元素,其原理是将当前位置后面的元素都向前移动一位,删除一个元素的平均时间复杂度为O(n) 对于golang的slice来说,没有用

随机推荐