當前位置:首頁 » 編程語言 » 資料庫防火牆sql規則怎麼寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫防火牆sql規則怎麼寫

發布時間: 2023-03-16 15:48:28

『壹』 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 符號 (@)。

注意:
請避免對使用別名數據類型的表達式創建規則。雖然可以對使用別名數據類型的表達式創建規則,但在將規則綁定到列或別名數據類型後,表達式被引用時將無法對其進行編譯。