Inception SQL审核注解
Inception SQL审核注解
1、建表语句
建表语句检查项
表属性的检查项
这个表不存在
对于create table like,会检查like的老表是不是存在。
对于create table db.table,会检查db这个数据库是不是存在
表名、列名、索引名的长度不大于64个字节
如果建立的是临时表,则必须要以tmp为前缀
必须要指定建立innodb的存储引擎(可配置)
必须要指定utf8的字符集(字符串可配置,指定支持哪些字符集)
表必须要有注释(可配置)
表不能建立为分区表(可配置)
只能有一个自增列
索引名字不能是Primay
不支持Foreign key(可配置)
建表时,如果指定auto_increment的值不为1,报错(可配置)
如果自增列的名字不为id,说明有可能是有意义的,MySQL这样使用比较危险,所以报警(可配置)
列属性的检查项
不能设置列的字符集(可配置)
列的类型不能使用集合、枚举、位图类型。(可配置)
列必须要有注释(可配置)
char长度大于20的时候需要改为varchar(长度可配置)
列的类型不能是BLOB/TEXT。(可配置)
每个列都使用not null(可配置)
如果列为BLOB/TEXT类型的,则这个列不能设置为NOT NULL。
如何是自增列,则使用无符号类型(可配置)
如果自增列,则长度必须要大于等于4个字节(可配置)
如果是timestamp类型的,则要必须指定默认值。
对于MySQL5.5版本(包含)以下的数据库,不能同时有两个TIMESTAMP类型的列,如果是DATETIME类型,则不能定义成DATETIME DEFAULT CURRENT_TIMESTAMP及ON UPDATE CURRENT_TIMESTAMP等语句。
每个列都需要定义默认值,除了自增列、主键列及大字段列之外(可配置)
不能有重复的列名
索引属性检查项
索引必须要有名字
不能有外键(可配置)
Unique索引必须要以uniq_为前缀(可配置)
普通索引必须要以idx_为前缀(可配置)
索引的列数不能超过5个(数目可以配置)
表必须要有一个主键(可配置)
最多有5个索引(数目可配置)
建索引时,指定的列必须存在。
索引中的列,不能重复
BLOB列不能建做KEY
索引长度不能超过766
不能有重复的索引,名字及内容
默认值检查项
BLOB/TEXT类型的列,不能有非NULL的默认值
MySQL5.5以下(含)的版本,对于DATETIME类型的列,不能有函数NOW()的默认值。
如果设置默认值为函数,则只能是NOW()。
如果默认值为NULL,但列类型为NOT NULL,或者是主键列,或者定义为自增列,则报错。
自增列不能设置默认值。
2、插入语句
插入语句检查项
表是否存在
必须指定插入列表,也就是要对哪几个列指定插入值,如insert into t (id,id2) values(...),(可配置)
必须指定值列表,与上面对应的列,插入的值是什么,必须要指定。
插入列列表与值列表个数相同,上面二者的个数需要相同,如果没有指定列列表(因为可配置),则值列表长度要与表列数相同。
不为null的列,如果插入的值是null,报错(可配置)
插入指定的列名对应的列必须是存在的。
插入指定的列列表中,同一个列不能出现多次。
插入值列表中的简单表达式会做检查,但具体包括什么不一一指定
3、更新、删除语句
更新、删除语句检查项
表是否存在
必须有where条件(可配置)
delete语句不能有limit条件(可配置)
不能有order by语句(可配置)
影响行数大于10000条,则报警(数目可配置)
对WHERE条件这个表达式做简单检查,具体包括什么不一一指定
对更新列的值列表表达式做简单检查,具体不一一指定
对更新列对象做简单检查,主要检查列是不是存在等
多表更新、删除时,每个表必须要存在
Inception SQL审核注解的更多相关文章
- Yearning + Inception SQL审核平台搭建
Yearning 安装: 安装Nginxyum install nginx -y 按照顺序安装MySQLmysql-community-common-5.7.22-1.el6.x86_64.rpmmy ...
- Docker Yearning + Inception SQL审核平台搭建
[一]安装[1.1]系统环境系统环境:CentOS Linux release 7.6.1708 (Core)系统内存:4G系统内核:1Python:3.6.4关闭iptables and selin ...
- centos 7 安装sql 审核工具 inception + archer
系统环境: Centos7 + python2.7 + python3 .... 下载 源码地址:https://github.com/mysql-inception/inception Incept ...
- 基于Inception搭建MySQL SQL审核平台Yearing
基于Inception搭建MySQL SQL审核平台Yearing Inception 1. Inceptionj简介 2. Inception安装 2.1 下载和编译 2.2 启动配置 Yearni ...
- SQL审核 Inception 中小团队快速构建SQL自动审核系统
SQL审核与执行,作为DBA日常工作中相当重要的一环,一直以来我们都是通过人工的方式来处理,效率低且质量没办法保证.为了规范操作,提高效率,我们决定引入目前市面上非常流行的SQL自动审核工具Incep ...
- SQL审核平台Yearning部署
SQL审核平台Yearning部署 Yearning优势: Yearning SQL 审计平台 基于Vue.js与Django的整套mysql-sql审核平台解决方案.提供基于Inception的S ...
- 【原创】SQL审核系统
前言 应公司dba的需求,做了一个sql审核并可以执行.记录的系统,整个系统有三种角色: DBA(需要管理员手动登记) 运维人员(需要管理员手动登记) 开发人员(默认注册后用户) 权限分配如下: 一些 ...
- Yearning v1.3.0 发布,Web 端 SQL 审核平台
企业级MYSQL web端 SQL审核平台. Website 官网 www.yearning.io Feature 功能 数据库字典自动生成 SQL查询 查询工单 导出 自动补全,智能提示 查询语句审 ...
- sql审核工具调研安装-sqlAdvisor和soar
sql审核工具调研 基于soar的sql审核查询平台: https://github.com/beiketianzhuang/data-platform-soar 1.美团工具sqlAdvisor工 ...
随机推荐
- CSP-J2019 加工零件
Background: 之前 $noip $死了,泥萌都说 \(noip SPFA\) 了,现在 \(noip\) 复活了,所以 \(SPFA\) 也复活了. (注:这里的 \(noip\) 跟 \( ...
- DRF项目之层级关系
一共分为四层关系. 第一层:视图 用来接收前端传递的参数,并实现业务逻辑相关的数据处理,并将数据通过创建序列化器对象的形式传递给序列化器. 第二层:序列化器 接收前端传递的数据,并将数据进行序列化操作 ...
- 使MVC路由表无效
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(Glob ...
- 【剑指Offer面试编程题】题目1368:二叉树中和为某一值的路径--九度OJ
题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 输入: 每个测试案例包括n+1行: 第一行为2 ...
- popupwindow使用之异常:unable to add window -- token null is not valid
使用popwindow中又碰到一个白痴问题,在此留作纪念,希望对大家有帮助 popupwindow之所以叫这个名字,肯定是要从某个地方弹出啦,但是从哪个地方呢?必须是指定一个view嘛 void an ...
- [*CTF2019]babyflash
用JPEXS反编译flash.swf得到441张黑白图片和1个mp3文件 软件下载地址:https://github.com/jindrapetrik/jpexs-decompiler/release ...
- luogu P2761 软件补丁问题
网络流(x) 状压(√) 初始状态为全1,合法状态为(state&b1)&(state|b1) == state && (state&b2)&(stat ...
- php-计算2个时间之差
//$startdate是开始时间,$enddate是结束时间 <?php $startdate="2011-3-15 11:50:00"; $enddate="2 ...
- php 投票系统
1.投票主界面(问题界面) <?php$db = new Mysqli("localhost","root","root"," ...
- 嵊州普及Day6T1
题意:有一个矩形,由正负整数构成.一个位子的魅力值为相邻的格子,若与邻格同号则减去绝对值,若异号则加上绝对值. 思路:一个格子一个格子计算即可,没什么好说的. 见代码: #include<ios ...