mysql系统表加trigger和对特定的库禁用 DDL 语句
2013-12-24 00:54
204 查看
给 mysql 系统表加上 trigger
1 Reply默认情况下,mysql 是不能给系统表,例如 mysql.user 加上触发器的。会提示
ERROR 1465 (HY000): Triggers can not be created on system tables
但是还是可以有办法绕过这个限制。
在其他 db 里另外建一个结构名字一样的表,例如
create table test.user like mysql.user
然后在那个表上建好触发器。这样会在数据库目录中生成 “表名.TRG” 文件。把这个文件拷贝到 mysql 库的目录中,确认访问权限没问题后,重启一下 mysql ,触发器就可以生效了。
在 mysql 中对特定的库禁用 DDL 语句
Leave a replymysql 的权限控制功能虽然已经比较强大,但是是基于白名单规则,所以没法做到对除某某库,如 mysql 库以外的所有库分配权限,或者说单独禁用某个库的某些权限。虽然可以一个个库地分配,但是这样毕竟麻烦,尤其是在库的数量会动态变化的情况下。
对于 DDL 语句,也就是 create 、alter 、drop 之类,有一个特殊的办法可以做到。其实也很简单,去掉那个库所在的目录的写权限即可。例如:
chmod a-w mysql
之后,在 mysql 库上执行任意 DDL 语句都会出错。
这方法看着挺恶心,不过也没找到更好的解决办法。
相关文章推荐
- 在 mysql 中对特定的库禁用 DDL 语句
- PowerDesigner15在win7-64位系统下对MySQL 进行反向工程以及建立物理模型产生SQL语句步骤图文傻瓜式详解
- MySQL8.0新特性之支持原子DDL语句
- mysql语句获取当前系统时间
- MySQL的系统变量设置:性能与禁用外键约束
- DDL,DML,DCL语句的区别(MYSQL)
- Mysql中DDL(数据定义语句)
- 详解MySQL第一篇—MySQL简要介绍及DDL语句
- MySQL之DDL语句
- mysql语句 常用函数,js画图,在线调查系统2
- MySQL DDL语句
- MySQL临时表增删的DDL语句是否会提交事务的测试
- [跟着hsp步步学习系统]oracle培训学习集锦全360度扫描(2)一条update语句,与mysql有异
- mysql里得到数据库或表的DDL创建语句
- PowerDesigner15在win7-64位系统下对MySQL 进行反向工程以及建立物理模型产生SQL语句步骤图文傻瓜式详解
- MYSQL DDL语句 与 DML 在一个事物中的问题。
- PowerDesigner15在win7-64位系统下对MySQL 进行反向工程以及建立物理模型产生SQL语句步骤图文傻瓜式详解
- MySQL的DDL语句、DML语句与DCL语句
- 【2】mysql 数据库的DDL语句
- [SQL Server]系统存储过程,视图的ddl语句