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是非权限内的操作。
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是非权限内的操作。
相关文章推荐
- MySQL权限篇讨论之权限收回之级联影响
- mysql ------ 存储过程
- mysql中使用分析函数(开窗函数)
- c#+windows环境 编写mysql集群服务
- jdbc创建-mysqls
- mac下mysql terminal设置以及常规用法
- MySQL备份时排除指定数据库的方法
- MySQL权限篇之FILE
- 如何将数据库从SQL Server迁移到MySQL
- MySql远程连接失败
- 关于如何使用Navicat(11.1.13) for MySQL如何创建存储过程
- MySQL提供的错误日志中的错误级别一共有3个分别为:
- mysql给root开启远程访问权限
- mysql:通用查询日志general_log
- mysql 字符串的截取与连接
- MYSQL 5.7.11 服务无法启动解决方法
- MYSQL_基本实例_mysql
- Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- mysql:错误日志log_error:
- 初学mysql 总结(3)