MySQL权限篇之INDEX

本文介绍了MySQL中INDEX权限的概念及使用方法。通过实例演示了如何创建、授权和使用INDEX权限进行索引的创建与删除操作,并指出ALTER命令并不包含在INDEX权限内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

INDEX权限,顾名思义就是在某个表上具有维护索引的权限。

mysql> drop user 'ut01'@'%';
Query OK, 0 rows affected (0.03 sec)


mysql> create user 'ut01'@'%';
Query OK, 0 rows affected (0.05 sec)


mysql> alter user 'ut01'@'%' identified by '20127163';
Query OK, 0 rows affected (0.05 sec)


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


mysql> grant index on test.t_area to 'ut01'@'%';
Query OK, 0 rows affected (0.06 sec)


mysql> show grants for 'ut01'@'%';
+----------------------------------------------+
| Grants for ut01@%                            |
+----------------------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%'             |
| GRANT INDEX ON `test`.`t_area` TO 'ut01'@'%' |
+----------------------------------------------+
2 rows in set (0.00 sec)


mysql>

下面看看ut01@%的操作:

C:\Users\Administrator>mysql -uut01
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20
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 |
+----------------+
| t_area         |
+----------------+
1 row in set (0.00 sec)


mysql> create index idx_t_area_name on t_area(name);
Query OK, 0 rows affected (0.44 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> drop index idx_t_area_name;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql> drop index idx_t_area_name on t_area;  #注意语法和oracle不同,意思就是mysql里面可以有索引名称相同的但是不在同一个表的索引存在
Query OK, 0 rows affected (0.18 sec) 
Records: 0  Duplicates: 0  Warnings: 0


mysql> ALTER TABLE `test`.`t_area`
    ->   ADD INDEX (`address`);
ERROR 1142 (42000): ALTER command denied to user 'ut01'@'localhost' for table 't_area'
mysql>

可见,获取index权限只能使用create和drop的方式管理索引。

而alter方式维护index是非权限内的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值