您的位置:首页 > 数据库 > MySQL

MySQL权限篇之INDEX

2016-03-28 12:00 411 查看
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是非权限内的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: