‘壹’ druid怎么自定义sql防火墙规则
druid是阿里巴巴开发的为监控而生的数据库连接池,可以非常直观的看到当前应用的数据源、sql执行情况、sql防火墙、web应用、uri监控、spring接口调用监控等。
数据源配置:
<beanid="readAccount"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close">
<!--数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass-->
<propertyname="driverClassName"value="${jdbc_read.driver}"/>
<!--基本属性url、user、password-->
<propertyname="url"value="${jdbc_read.url}"/>
<propertyname="username"value="${jdbc_read.username}"/>
<propertyname="password"value="${jdbc_read.password}"/>
<!--配置初始化大小、最小、最大-->
<propertyname="initialSize"value="${jdbc.pool.minIdle}"/>
<propertyname="minIdle"value="${jdbc.pool.minIdle}"/>
<propertyname="maxActive"value="${jdbc.pool.maxActive}"/>
<!--配置获取连接等待超时的时间-->
<propertyname="maxWait"value="30000"/>
<!--配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒-->
<propertyname="timeBetweenEvictionRunsMillis"value="30000"/>
<!--配置一个连接在池中最小生存的时间,单位是毫秒-->
<propertyname="minEvictableIdleTimeMillis"value="90000"/>
<propertyname="validationQuery"value="SELECT'x'"/>
<propertyname="testWhileIdle"value="true"/>
<propertyname="testOnBorrow"value="false"/>
<propertyname="testOnReturn"value="false"/>
</bean>
开启web监控:
在数据源配置中,增加以下属性
<propertyname="filters"value="stat"/>
在web.xml中增加以下配置
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
开启sql防火墙:
在数据源配置中,增加以下属性
<propertyname="filters"value="stat,wall"/>
开启spring方法调用监控:
在spring配置文件中增加以下配置
<beanid="druid-stat-interceptor"class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"></bean>
<beanid="druid-stat-pointcut"class="org.springframework.aop.support.JdkRegexpMethodPointcut"scope="prototype">
<propertyname="patterns">
<list>
<value>com.xxx.*</value>
<value>com.xxx1.*</value>
</list>
</property>
</bean>
<aop:config>
<aop:advisoradvice-ref="druid-stat-interceptor"pointcut-ref="druid-stat-pointcut"/>
</aop:config>
‘贰’ sql server中的规则是什么 如何定义速回有加分!
CREATE RULE (Transact-SQL)
创建名为规则的对象。当绑定到列或别名数据类型时,使用规则指定可以插入到列中的可接受的值。
重要提示:
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。建议您改用检查约束。检查约束是使用 CREATE TABLE 或 ALTER TABLE 的 CHECK 关键字创建的。有关详细信息,请参阅 CHECK 约束。
列或别名数据类型只能被绑定一个规则。不过,列可以同时有一个规则以及一个或多个检查约束与其相关联。在这种情况下,将评估所有限制。
Transact-SQL 语法约定
语法
CREATE RULE [ schema_name . ] rule_name
AS condition_expression
[ ; ]
参数
schema_name
规则所属架构的名称。
rule_name
新规则的名称。规则名称必须符合标识符规则。根据需要,指定规则所有者名称。
condition_expression
定义规则的条件。规则可以是 WHERE 子句中任何有效的表达式,并且可以包括诸如算术运算符、关系运算符和谓词(如 IN、LIKE、BETWEEN)这样的元素。规则不能引用列或其他数据库对象。可以包括不引用数据库对象的内置函数。不能使用用户定义函数。
condition_expression 包括一个变量。每个局部变量的前面都有一个 at 符号 (@)。该表达式引用通过 UPDATE 或 INSERT 语句输入的值。在创建规则时,可以使用任何名称或符号表示值,但第一个字符必须是 at 符号 (@)。
注意:
请避免对使用别名数据类型的表达式创建规则。虽然可以对使用别名数据类型的表达式创建规则,但在将规则绑定到列或别名数据类型后,表达式被引用时将无法对其进行编译。