91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL_MODE為嚴格模式下的數據安全專題報告

發布時間:2020-08-03 11:42:20 來源:網絡 閱讀:526 作者:necther 欄目:數據庫
專題描述詳細描述SQL_MODE為嚴格模式下可能出現的數據錯誤風險。
問題提出1日期默認'0000-00-00 00:00:00'的,查詢時會直接報錯。
Caused by: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
URL需添加如下參數:zeroDateTimeBehavior=convertToNull。
2OMS數據庫因UAT環境和性能測試環境的參數配置不同,導致性能測試環境下應用SQL執行報錯,相關參數為STRICT_TRANS_TABLES與explicit_defaults_for_timestamp。
數據風險1整型類型數據值截斷風險

重點關注 TINYINT類型

,其他整數類型上線初期溢出概率低。

以“`payment_display_mode` tinyint(4) 

DEFAULT NULL COMMENT '付款到期日顯示方式: 

11-最晚匯款日 12-到期日',” 為例。

示例:在非嚴格模式下,應用程序為 

字段 payment_display_mode 設置一個值 

小于-128 或大于127 ,

則超過部分會被截斷(超過-128,則存儲為-128,例如 -200 會默認變成 -128;超過127,則存儲為127),例如 300 會默認變成127。

2浮點類型截斷

以“`longitude` DECIMAL(19,5) NULL

 DEFAULT '0.00000' COMMENT '經度坐標'” 

為例。


示例:在非嚴格模式下,應用程序為 

字段 longitude 設置一個值 

超過 5位小數或者整數超過14位,

則超過部分會被截斷。

3字符串類型風險

以“`MODIFIER_USER` VARCHAR(30) NUL

L DEFAULT NULL COMMENT '更新者用戶賬號',”

 為例。


示例:在非嚴格模式下,

應用程序為 字段 MODIFIER_USER 

設置一個值 超過 30個字符,則超過部分會被截斷。

4時間類型風險由于JAVA代碼認為0000-00-00 00:00:00時間是非法的時間,JDBC中提供參數控制對它的處理, 故可通過添加zeroDateTimeBehavior=convertToNull使其轉化為null。 

連接字符串示例: 
jdbc:mysql://10.202.198.201:3319/oms6?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull 
5NOT NULL類型風險

非嚴格模式下,不給字段定義約束

NOT NULL字段賦值 或 給其一個NULL值,

在無定義約束無默認值的情況下:數據值類型的

字段值默認為0,字符串類型的字段值默認為空字符串''。從SQL語句和存儲過程處理分析,多數情況下都兼容處理了,但依然請研發團隊謹慎評估。

問題原因數據庫SQL_MODE設置為嚴格模式。
解決方案1建議DBA團隊設置SQL_MODE為嚴格模式,運行系統進行測試,將根據報錯定位存在的數據隱患,修改程序。
2設置服務器SQL_MODE為嚴格模式。
知識點1

數據庫SQL_MODE設置為嚴格模式將出現問題分為以下幾類

:1、日期默認'0000-00-00 00:00:00'的;查詢時會直接報錯,

2、字段類型設置為NOT NULL時,插入NULL值將報錯;

3、當插入超出數值字段類型范圍的值時,直接報錯;

2STRICT_TRANS_TABLES釋義:

官方文檔鏈接:

http://dev.mysql.com/doc/refman/5.6/en/sql-mode.html#sql-mode-strict

官方文檔解釋:For transactional tables, an error occurs for invalid or missing values in a data-change statement when either STRICT_ALL_TABLES or STRICT_TRANS_TABLES is enabled. The statement is aborted and rolled back.
使用該參數的主要目的還是使得數據庫面對錯誤的數據和操作時傾向于報錯,而不是給出警告。便于提早發現問題,與規范對數據庫的操作。
3

數據庫SQL_MODE設置為非嚴格模式時,系統上述情況傾向于警告

。插入超過數值類型范圍字段值時系統取最大值插入,

插入字符類型字段值超過長度范圍時會截斷。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岑溪市| 广河县| 高邑县| 镇巴县| 广宗县| 诏安县| 山东省| 濉溪县| 武邑县| 北碚区| 二连浩特市| 淮安市| 鹤庆县| 井冈山市| 富源县| 四子王旗| 青河县| 凌海市| 松原市| 绥棱县| 和龙市| 武隆县| 车致| 英超| 健康| 肃南| 阿尔山市| 海门市| 大名县| 宜兰市| 元谋县| 织金县| 三明市| 应用必备| 平舆县| 舞阳县| 旅游| 姜堰市| 科尔| 三门峡市| 城步|