前提条件
- 实例内核版本需要为以下版本或者更新的版本:12.20_P3,13.16_P3,14.13_P3,15.8_P4。
- 实例状态为运行中。
说明
目前一个拦截规则只能作用于指定用户和指定数据库,例如:用户A在数据库C中添加了拦截规则:SELECT id,name FROM sql_rule,若用户B在数据库C进行相同的sql查询,拦截规则不生效;同理,用户A在数据库C1进行相同的sql查询,拦截规则也不生效。用户A在数据库C中进行相同的查询拦截规则会生效。
拦截规则会对查询条件进行参数化,例如:SELECT id,name FROM sql_rule WHERE name = 'rule'会被参数化成SELECT id,name FROM sql_rule WHERE name = $1,因此,无论查询条件的传值是什么,只要是执行类似这个规则的sql都会被拦截。
拦截统计会一直保留,不会随着拦截规则删除而被删除。
操作步骤
创建拦截规则
- 登录天翼云官网。
- 点击控制中心,进入控制中心后,选择目标资源池。
- 在产品列表页面中找到【数据库】→【关系数据库PostgreSQL版】,点击进入控制台。
- 在左侧菜单中点击【PostgreSQL】→【实例管理】,点击进入产品实例管理页。
- 在【实例管理】的实例列表中选择目标实例,点击指定的实例,进入单个实例管理详情页。
- 在左边的tab页点击【SQL拦截】,进入【SQL拦截】页面。
- 点击【拦截规则】tab页,然后点击【创建拦截规则】按钮。
- 在弹出的窗口中,选择“用户”和“需要拦截的sql“,点击【analyze】,对sql进行分析,最后点击确定,拦截规则创建完成。
删除拦截规则
- 登录天翼云官网。
- 点击控制中心,进入控制中心后,选择目标资源池。
- 在产品列表页面中找到【数据库】→【关系数据库PostgreSQL版】,点击进入控制台。
- 在左侧菜单中点击【PostgreSQL】→【实例管理】,点击进入产品实例管理页。
- 在【实例管理】的实例列表中选择目标实例,点击指定的实例,进入单个实例管理详情页。
- 在左边的tab页点击【SQL拦截】,进入【SQL拦截】页面。
- 点击【拦截规则】tab页,在拦截规则列表的右侧,点击【删除】按钮。
- 在弹出的窗口中,点击【确定】,删除拦截规则完成。
说明也可以通过【批量删除】功能进行批量删除拦截规则。
编辑拦截规则
- 登录天翼云官网。
- 点击控制中心,进入控制中心后,选择目标资源池。
- 在产品列表页面中找到【数据库】→【关系数据库PostgreSQL版】,点击进入控制台。
- 在左侧菜单中点击【PostgreSQL】→【实例管理】,点击进入产品实例管理页。
- 在【实例管理】的实例列表中选择目标实例,点击指定的实例,进入单个实例管理详情页。
- 在左边的tab页点击【SQL拦截】,进入【SQL拦截】页面。
- 点击【拦截规则】tab页,在拦截规则列表的右侧,点击【编辑】按钮。
- 在弹出的窗口中,选择“用户”和“需要拦截的sql“,点击【analyze】,对sql进行分析,最后点击确定,拦截规则修改完成。