国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號

在SQL Server中正確使用參數(shù)報表
2009-08-15   IT專家網(wǎng)

  一、帶報表參數(shù)的典型應(yīng)用。

  在一個報表中加入?yún)?shù),最直接的結(jié)果就是可以提高查詢語句的重復(fù)利用性。如用戶可以通過更改參數(shù)來調(diào)整顯示的結(jié)果等等。對于這些常規(guī)的應(yīng)用筆者不做過多的闡述。筆者現(xiàn)在要說的是,帶參數(shù)報表的一些高級應(yīng)用。

  參數(shù)報表比較高級的應(yīng)用就是實現(xiàn)報表鉆取。鉆取是改變維的層次,變換分析的粒度。它包括向上鉆取和向下鉆取。向上鉆取是在某一維上將低層次的細(xì)節(jié)數(shù)據(jù)概括到高層次的匯總數(shù)據(jù),或者減少維數(shù);向下鉆取是指自動生成匯總行的分析方法。簡單的說,現(xiàn)在數(shù)據(jù)庫中有一張銷售訂單表。根據(jù)這張表可以生成一張各個月份的銷售統(tǒng)計表。但是,有可能用戶在查看這張報表的時候,對某個月份的統(tǒng)計結(jié)果有懷疑,為此需要查看這個月份的銷售明細(xì)。此時如果利用帶參數(shù)的報表實現(xiàn)鉆取功能的話,那么就不需要重新查詢或者生成報表。而只需要直接在這張報表上點(diǎn)擊月份,系統(tǒng)就會自動打開另外一張報表。這張報表中的內(nèi)容就是這月份的銷售明細(xì)。從技術(shù)的角度講,就是通過參數(shù)的傳遞,將這張報表的時間信息作為另一張報表的查詢參數(shù)。從而讓系統(tǒng)自動根據(jù)這個參數(shù)來生成相應(yīng)的數(shù)據(jù),從而簡化用戶的操作。

  二、帶參數(shù)報表要避免注入式攻擊。

  在使用參數(shù)報表的時候,特別需要注意一點(diǎn)就是防止注入式攻擊。注入式攻擊各位讀者或許都了解。可是對于為什么使用參數(shù)的報表容易引起注入式攻擊,可能大家并不怎么了解。這主要是因為參數(shù)如果采用的是string數(shù)據(jù)類型所造成的。即如果參數(shù)采用的是string數(shù)據(jù)類型,那么就表示用戶可以根據(jù)需要輸入任何類型的字符串。此時如果用戶輸入了一些注入式攻擊的代碼當(dāng)作參數(shù),則就可能會導(dǎo)致注入式攻擊。為此如果生成報表時,采用的參數(shù)時String數(shù)據(jù)類型的,就需要特別的注意。為了防止這個注入式攻擊,筆者建議如果采用的參數(shù)一定要是String數(shù)據(jù)類型的話,那么最好能夠遵循下面的規(guī)則。DB2數(shù)據(jù)庫與SQLServer數(shù)據(jù)庫的異同

  首先,在客戶端將報表查詢語句傳遞給數(shù)據(jù)庫之前,即將參數(shù)復(fù)制給Select語句之前,最好進(jìn)行驗證。即要驗證輸入的參數(shù)值中,是否存在一些特殊的符號。這些符號往往跟輸入攻擊有關(guān)。如果存在這些特殊字符的話,則需要向用戶提供警告信息,表明存在注入式攻擊的可能性。并且,系統(tǒng)可以拒絕接受這個參數(shù)。這個避免注入式攻擊的方法比較消極。如果這些特殊符號確實是查詢參數(shù)中包含的內(nèi)容,那么也無法使用。

  其次,可以通過值列表的方式來向數(shù)據(jù)庫傳遞參數(shù)。在沒有提供值列表的情況下,如果參數(shù)是字符類型的,則系統(tǒng)向用戶顯示的是一個可以使用任何值的文本框。此時數(shù)據(jù)庫管理員可以使用可用值列表的方式來規(guī)范化參數(shù)的輸入,限制其輸入一些特殊的字符。也就是說,在定義String類型的參數(shù)報表時,讓系統(tǒng)向用戶顯示一個下拉的列表框,然后用戶通過選擇來指定參數(shù)。這個操作就跟Excel表格中的下拉列框差不多,用戶只能夠選擇數(shù)據(jù)庫管理員所提供的值,或者說只能夠選擇某張表中存在的值。由于用戶不能夠自己輸入值,而只能夠選擇,這就可以有效的避免注入式攻擊。不過采用這種方式有一個缺陷,就是如果有效的值太多的話,這個列表就會很長。為此用戶在選擇參數(shù)的時候,就會很麻煩。如當(dāng)有效值有500個的話,那么就需要在500個值中選擇一個值,顯然這有點(diǎn)困難。即使按照參數(shù)的名字順序來排列,選擇也是比較麻煩的。大內(nèi)存SQLServer數(shù)據(jù)庫的加速劑

  第三,可以利用列表查詢的方式,來避免注入式攻擊。即當(dāng)用戶輸入一個參數(shù)之后,系統(tǒng)會自動從一個列表中查詢是否存在這個值。如果存在的話,則將這個參數(shù)賦值給查詢語句中的變量。如果不存在的話則提醒用戶參數(shù)可能輸入錯誤。如現(xiàn)在有一張銷售訂單明細(xì)報表。用戶可能需要根據(jù)訂單號碼來查詢銷售訂單明細(xì)。此時這個訂單號碼就是一個字符型的參數(shù)。當(dāng)用戶輸入這個參數(shù)的時候,并不是馬上傳遞給數(shù)據(jù)庫,這么做太危險,容易產(chǎn)生注入式攻擊。而是前臺應(yīng)用程序也從后臺數(shù)據(jù)庫中取得所有的銷售訂單的訂單號碼信息。當(dāng)用戶輸入?yún)?shù)之后,前臺應(yīng)用程序會把這個用戶輸入的參數(shù)跟自己查詢出來的信息先進(jìn)行對比。如果有匹配的信息,就將這個參數(shù)傳遞給后臺數(shù)據(jù)庫。如果沒有的話,就向用戶報告錯誤的信息。有些應(yīng)用程序在設(shè)計的時候,還會更進(jìn)一步。如客戶端程序會先從數(shù)據(jù)庫中取得訂單號碼與對應(yīng)的訂單ID。當(dāng)用戶輸入?yún)?shù)之后,會進(jìn)行比對。如果比對成功的話,那么客戶端應(yīng)用程序會將這個訂單號碼對應(yīng)的訂單ID作為參數(shù)傳遞給查詢語句。也就是說,從數(shù)據(jù)庫服務(wù)器角度來講,真正的參數(shù)是訂單ID(整數(shù)型數(shù)據(jù)類型)而不是訂單號碼(字符串?dāng)?shù)據(jù)類型)。通過這個數(shù)據(jù)類型轉(zhuǎn)換,從而可以從根本上防止注入式的攻擊。

  以上三種方式都可以很有效的避免注入式攻擊。數(shù)據(jù)庫管理員需要根據(jù)實際應(yīng)用來選擇合適的解決方案。如當(dāng)有效值比較少的時候,如按年份來統(tǒng)計銷售訂單時,則可以使用列表的形式。當(dāng)有效值比較多,特別是這個有效值會自動增長的時候,則可以使用列表查詢的方式。總之一個基本的原則,對于String參數(shù),一定要進(jìn)行驗證其合法性。否則的話,很容易造成注入式攻擊。

  三、對于日期型的數(shù)據(jù)給與特殊的照顧。

  日期型的數(shù)據(jù)是數(shù)據(jù)庫中最容易出現(xiàn)問題的一個數(shù)據(jù)類型。因為不同語言環(huán)境下,如英語與漢語環(huán)境下,其采用的日期格式是不同的。如果數(shù)據(jù)庫中定義了某個日期格式,而輸入的參數(shù)如果不符合這個格式的話,則系統(tǒng)就會認(rèn)為這條記錄不存在,從而在報表中查詢不到相關(guān)的數(shù)據(jù)。為此如果在報表中要使用日期型數(shù)據(jù)參數(shù)的話,將會是一件比較麻煩的事情。所以,在應(yīng)用程序設(shè)計時,數(shù)據(jù)庫管理員最好提醒前臺應(yīng)用程序的設(shè)計者,能夠規(guī)范化日期的格式。如可以要求他們,對于日期型的數(shù)據(jù)作為參數(shù)時,用戶不能夠手工輸入日期。因為不同的用戶輸入習(xí)慣不同,如有些人會按年月日的格式輸入(有些用戶會把8月份寫成08,而有些直接寫成8),有些人則會按月、日、年的格式進(jìn)行輸入。由于格式不統(tǒng)一,那么數(shù)據(jù)庫就很難按照同一個規(guī)則進(jìn)行轉(zhuǎn)換。為此,對于日期型的數(shù)據(jù)作為參數(shù)時,最好在前臺應(yīng)用程序中能夠規(guī)范化輸入的格式。如以一個統(tǒng)計的格式輸入。要做到這一點(diǎn)的話,就可以通過一個日期型的控件來完成。即用戶不能夠手工輸入日期型的數(shù)據(jù)。當(dāng)遇到某個參數(shù)時日期型的數(shù)據(jù)時,當(dāng)鼠標(biāo)定位到這個文本框,則系統(tǒng)就會彈出一個類似日歷的界面。用戶只有通過選擇日期來輸入日期型的數(shù)據(jù),從而規(guī)范化用戶的輸入。另外也可以通過掩碼的方式來規(guī)范用戶輸入的格式。即預(yù)先規(guī)定年月日的輸入掩碼。用戶在輸入的時候必須按照這個格式,否則的話,系統(tǒng)不會接受用戶的輸入。這兩種方式都可以實現(xiàn)對日期數(shù)據(jù)的規(guī)范化。

  當(dāng)用戶按照同一個格式輸入日期數(shù)據(jù)后,以后的工作就容易處理了。在將參數(shù)傳遞給數(shù)據(jù)庫的時候,可以在查詢語句中加入一個日期型數(shù)據(jù)的強(qiáng)制轉(zhuǎn)換語句。將輸入的日期型數(shù)據(jù)按照系統(tǒng)表中定義的日期型數(shù)據(jù)進(jìn)行轉(zhuǎn)換。即如果前臺客戶端輸入的日期型數(shù)據(jù)格式是日、月、年(只要輸入的內(nèi)容統(tǒng)一即可,沒有具體的要求),然后在查詢語句中就可以通過數(shù)據(jù)類型轉(zhuǎn)換工具對數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。如將日、月、年表示的字符型數(shù)據(jù)類型表示會年、月、日的日期型數(shù)據(jù)類型。如此的話,就可以保證用戶輸入的參數(shù)是數(shù)據(jù)庫可以識別的。就可以避免因為日期格式不一致或者數(shù)據(jù)類型不一致而導(dǎo)致報表不能夠抓取記錄。

熱詞搜索:

上一篇:快速了解服務(wù)器數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn)
下一篇:美國西蒙成功布線江蘇國際圖書中心

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
亚洲天天影视| 亚洲黄一区二区三区| 国产精品日韩一区二区三区| 亚洲国产精品精华液网站| 久久综合99re88久久爱| 在线成人黄色| 欧美成人综合网站| 亚洲激情网址| 欧美日韩成人网| 亚洲欧美日韩国产成人精品影院| 亚洲性感美女99在线| 国产精品久久久久99| 午夜精品久久久久久久99樱桃| 国产一区在线视频| 欧美黄色影院| 欧美一区二区三区在线观看视频| 在线成人欧美| 欧美日韩综合网| 久久久青草青青国产亚洲免观| 亚洲国产精品一区二区三区| 国产精品成人一区二区艾草| 久久一本综合频道| 9色国产精品| 国产一区二区av| 欧美日韩黄视频| 久久精品视频一| 一本大道av伊人久久综合| 久久免费黄色| 99视频精品| 国产一区二区精品| 欧美日韩一区二区视频在线观看| 久久国产日韩| 亚洲校园激情| 亚洲人成7777| 一区二区亚洲精品国产| 国产精品麻豆成人av电影艾秋 | 韩国三级电影久久久久久| 久久综合99re88久久爱| 日韩午夜电影在线观看| 一色屋精品视频在线观看网站| 国产精品a久久久久久| 欧美经典一区二区三区| 久久男人资源视频| 欧美中文在线观看| 午夜伦欧美伦电影理论片| 99在线精品观看| 亚洲免费精彩视频| 亚洲欧洲视频| 亚洲精品一区中文| 亚洲日本中文字幕| 亚洲人妖在线| 亚洲片区在线| 亚洲精品国产精品国自产观看| 伊人狠狠色丁香综合尤物| 国产一区91| 红桃视频一区| 在线观看日韩av电影| 伊伊综合在线| 亚洲国产精品久久久久秋霞蜜臀 | 欧美日韩一视频区二区| 欧美高清视频一区二区| 欧美大香线蕉线伊人久久国产精品| 久久人人爽人人爽爽久久| 另类激情亚洲| 欧美伦理视频网站| 欧美欧美天天天天操| 欧美国产日韩二区| 欧美日韩一区二区在线观看视频| 欧美日韩成人综合天天影院| 欧美日韩一区在线| 国产精品美女xx| 国产一区在线播放| 亚洲国产精品成人精品| 日韩视频专区| 午夜视频在线观看一区| 久久久久9999亚洲精品| 欧美成人精品一区二区| 欧美日韩亚洲不卡| 国产精品久久午夜夜伦鲁鲁| 国产亚洲综合在线| 最新国产の精品合集bt伙计| 国产精品99久久久久久白浆小说| 亚洲在线观看视频| 午夜视频一区| 另类av一区二区| 欧美日韩在线免费| 国产一区二区三区日韩欧美| 依依成人综合视频| 中文亚洲欧美| 久久免费少妇高潮久久精品99| 欧美成人精品一区| 国产精品手机在线| 亚洲第一精品福利| 亚洲在线视频观看| 女女同性精品视频| 国产精品男人爽免费视频1| 国语自产在线不卡| 亚洲毛片在线| 久久国产毛片| 欧美午夜精品久久久久久久| 韩国免费一区| 亚洲图片欧洲图片av| 欧美一级淫片播放口| 欧美肥婆在线| 国产精品影视天天线| 亚洲国产欧美久久| 欧美在线免费看| 欧美日韩国产综合网| 在线观看视频一区二区| 亚洲在线观看视频| 欧美伦理视频网站| 伊人久久综合97精品| 欧美一级大片在线免费观看| 欧美精品电影| 好男人免费精品视频| 亚洲视频精品| 免费永久网站黄欧美| 国产私拍一区| 亚洲欧美国产一区二区三区| 欧美黄色片免费观看| 狠狠88综合久久久久综合网| 亚洲在线观看| 欧美体内she精视频在线观看| 亚洲精品少妇30p| 久久婷婷成人综合色| 国产精品自拍在线| 亚洲毛片av| 美女国内精品自产拍在线播放| 国产精品午夜在线观看| 中文一区在线| 欧美日韩精品免费观看| 亚洲国产日韩综合一区| 另类综合日韩欧美亚洲| 国际精品欧美精品| 亚洲网站在线| 欧美日本国产精品| 夜夜嗨网站十八久久| 欧美精品91| 亚洲久久视频| 欧美精品电影| 一区二区三区日韩在线观看| 欧美激情成人在线| 欧美国产日韩一区二区| 91久久精品一区二区别| 蜜月aⅴ免费一区二区三区| 影音先锋亚洲电影| 麻豆亚洲精品| 欧美日韩一区二区国产| 欧美国产一区二区| 久久久噜噜噜久久中文字幕色伊伊| 久久综合色一综合色88| 国产精品丝袜白浆摸在线| 亚洲视频在线免费观看| 国产精品国产三级国产aⅴ入口| 99re6热在线精品视频播放速度| 欧美精品1区2区| 99av国产精品欲麻豆| 欧美激情一区二区三区成人| 亚洲看片免费| 国产精品日韩欧美大师| 欧美在线高清视频| 久久成人资源| 黄色成人免费观看| 久久久久国产精品麻豆ai换脸| 麻豆精品在线观看| ●精品国产综合乱码久久久久| 欧美国产激情| 亚洲制服丝袜在线| 好吊妞**欧美| 欧美黄在线观看| 亚洲欧美在线网| 在线日本成人| 欧美午夜一区二区三区免费大片 | 亚洲精品免费电影| 国产精品久久久久久亚洲毛片| 欧美一级电影久久| 伊人久久综合| 欧美视频久久| 久久一区二区精品| 一区二区三区久久久| 激情综合亚洲| 国产精品麻豆欧美日韩ww | 伊人久久成人| 欧美日韩国产欧| 久久精品成人| 在线视频欧美日韩精品| 国产一区在线播放| 国产精品久久久久99| 老司机精品视频一区二区三区| 亚洲精品四区| 在线精品一区二区| 国产精品国产三级国产专区53| 久久一区二区精品| 亚洲五月婷婷| 亚洲高清三级视频| 国产精品久久久久77777| 免费成人性网站| 欧美一区观看| 亚洲一区二区高清| 亚洲精选一区二区|