MySQL权限篇之DROP
2016-03-25 13:49
531 查看
DROP权限呢是删除对象,拥有该权限的用户可以删除指定范围内的对象(schema、表和视图)。
不能删除除这些对象之外的其他对象。
mysql> show grants for 'ut01'@'%';
+----------------------------------+
| Grants for ut01@% |
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql> grant drop on test1.* to 'ut01'@'%';
Query OK, 0 rows affected (0.06 sec)
mysql> show grants for 'ut01'@'%';
+---------------------------------------+
| Grants for ut01@% |
+---------------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
| GRANT DROP ON `test1`.* TO 'ut01'@'%' |
+---------------------------------------+
2 rows in set (0.00 sec)
mysql> use test1;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> create table t1(id int,name char(10));
Query OK, 0 rows affected (0.32 sec)
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| t1 |
+-----------------+
1 row in set (0.00 sec)
mysql> create view v_t1 as select id,name from t1;
Query OK, 0 rows affected (0.11 sec)
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| t1 |
| v_t1 |
+-----------------+
2 rows in set (0.00 sec)
mysql>
而该用户只能:
mysql> use test1;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| t1 |
+-----------------+
1 row in set (0.00 sec)
mysql> select * from t1;
ERROR 1142 (42000): SELECT command denied to user 'ut01'@'localhost' for table 't1'
mysql> desc t1;
ERROR 1142 (42000): SELECT command denied to user 'ut01'@'localhost' for table 't1'
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| t1 |
| v_t1 |
+-----------------+
2 rows in set (0.00 sec)
mysql> drop view v_t1;
Query OK, 0 rows affected (0.08 sec)
mysql> create view v_t1 as select id,name from t1;
ERROR 1142 (42000): CREATE VIEW command denied to user 'ut01'@'localhost' for table 'v_t1'
mysql> create database test2;
ERROR 1044 (42000): Access denied for user 'ut01'@'%' to database 'test2'
mysql>
只能删除表和视图。那么能删除test1这个schema吗?
mysql> drop database test1;
Query OK, 0 rows affected (0.06 sec)
mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
mysql>
可见是可以删除test1这个schema的。
不能删除除这些对象之外的其他对象。
mysql> show grants for 'ut01'@'%';
+----------------------------------+
| Grants for ut01@% |
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql> grant drop on test1.* to 'ut01'@'%';
Query OK, 0 rows affected (0.06 sec)
mysql> show grants for 'ut01'@'%';
+---------------------------------------+
| Grants for ut01@% |
+---------------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
| GRANT DROP ON `test1`.* TO 'ut01'@'%' |
+---------------------------------------+
2 rows in set (0.00 sec)
mysql> use test1;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> create table t1(id int,name char(10));
Query OK, 0 rows affected (0.32 sec)
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| t1 |
+-----------------+
1 row in set (0.00 sec)
mysql> create view v_t1 as select id,name from t1;
Query OK, 0 rows affected (0.11 sec)
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| t1 |
| v_t1 |
+-----------------+
2 rows in set (0.00 sec)
mysql>
而该用户只能:
mysql> use test1;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| t1 |
+-----------------+
1 row in set (0.00 sec)
mysql> select * from t1;
ERROR 1142 (42000): SELECT command denied to user 'ut01'@'localhost' for table 't1'
mysql> desc t1;
ERROR 1142 (42000): SELECT command denied to user 'ut01'@'localhost' for table 't1'
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| t1 |
| v_t1 |
+-----------------+
2 rows in set (0.00 sec)
mysql> drop view v_t1;
Query OK, 0 rows affected (0.08 sec)
mysql> create view v_t1 as select id,name from t1;
ERROR 1142 (42000): CREATE VIEW command denied to user 'ut01'@'localhost' for table 'v_t1'
mysql> create database test2;
ERROR 1044 (42000): Access denied for user 'ut01'@'%' to database 'test2'
mysql>
只能删除表和视图。那么能删除test1这个schema吗?
mysql> drop database test1;
Query OK, 0 rows affected (0.06 sec)
mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
mysql>
可见是可以删除test1这个schema的。
相关文章推荐
- MySQL数据库维护、备份、和复制
- ABAP调优——Open SQL优化
- mysql企业常用架构和调优
- MySQL5.6系统变量--open_files_limit
- Oracle 11gR2 及PL/SQL Developer 安装使用遇到的问题
- Oracle 11gR2 及PL/SQL Developer 安装使用遇到的问题
- TP连接MYSQL的简单查询及添加
- django中运行连接mysql(使用pymysql代替MySQL_db)
- 使用SqlBulkCopy进行批量插入数据时踩过的坑
- DB SQL Monitor 会话状态及等待事件监控工具
- MySQL监控SQL及命中率脚本
- mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual t
- PL/SQL Developer 中文字段显示乱码
- postgresql Streaming Replication监控与注意事项
- SQL Server安全(5/11):架构与安全(Schemas and Security)
- Oracle SQL Developer 添加SQLServer 和Sybase 连接
- 加载com.mysql.jdbc.Driver失败 jdbc.properties连接信息多了个空格
- Hadoop Hive基础sql语法
- SQLServer 服务器架构迁移
- quartz mysql , shiro logout