MySQL权限篇之DELETE及SELECT

DELETE权限,该权限仅仅能删除表中的记录。

但是要注意如果仅仅只授予了DELETE权限。

比如:

mysql> show grants for 'ut01'@'%';
+----------------------------------+
| Grants for ut01@%                |
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
+----------------------------------+
1 row in set (0.00 sec)


mysql> grant delete on test.t1 to 'ut01'@'%';  #在test.t1表上有delete权限

Query OK, 0 rows affected (0.03 sec)


mysql> use test
Database changed
mysql> insert into t1 values(1),(2),(3);
Query OK, 3 rows affected (0.12 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

那么请问ut01@%用户执行 delete from  t1 where id=3; 能够成功吗?

答案是不会的。因为该用户没有id列上的select权限,所以会由于where子句而失败。

下面来看:

C:\Users\Administrator>mysql -uut01
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.7.11-log MySQL Community Server (GPL)


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> use test
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
+----------------+
1 row in set (0.00 sec)


mysql> desc t1;
Empty set (0.00 sec)


mysql> select * from t1;
ERROR 1142 (42000): SELECT command denied to user 'ut01'@'localhost' for table 't1'
mysql> delete from t1 where t1.id=3;
ERROR 1143 (42000): SELECT command denied to user 'ut01'@'localhost' for column 'id' in table 't1'
mysql> delete from t1;
Query OK, 3 rows affected (0.09 sec)


mysql> delete from t1 where 1=1;
Query OK, 0 rows affected (0.05 sec)


mysql>

不加where条件的delete可以删除成功。


SELECT权限,很好理解。就是可以对某个库的某个表的某个列(或者所有列)的查询权限。

不演示。但是下面的SELECT查询并不需要SELECT权限:

SELECT 1+1;
SELECT PI()*2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值