Soft_Job 板


LINE

最近我看到一個狀況, 是公司有人開個table來放sql, 要用sql時,就從這個table裡把sql撈出來用, 我心想這樣用sql撈sql來執行不是多此一舉嗎? 我問對方為何不用sp, 對方說怕sp太多, 可能我孤陋寡聞以前還真沒看過這種做法, 所以我好奇來問問大家, 有遇到把sql放到table裡來用的狀況嗎? 這樣真的有好處嗎? -- 十年前,當我知道前女友結婚時,我哭得稀哩嘩啦, 十年後,當我知道另一位前女友結婚時,我一滴淚也沒流, 只是一個人坐在窗前,聽著風鈴的聲音,靜靜的沉思著 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 89.47.15.155
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1506530741.A.A14.html
1F:推 drajan: 建view就可以了 09/28 00:49
2F:推 giacch: 新增SP要簽單子... 09/28 00:53
3F:→ vi000246: 有autoHokey... 09/28 00:57
4F:推 ripple0129: 多增加IO負擔,SQL更新麻煩,想不到任何好處。 09/28 01:09
5F:→ littlethe: 我沒有規定新增SP要簽單子,所以他可以自己加SP 09/28 01:09
6F:→ ckvir: 沒好處 09/28 01:21
7F:→ alog: 沒好處啊 SP太多真的影響到系統 排一個計畫升級規格就好了 09/28 02:28
8F:→ alog: 在TABLE塞SQL來取代這些作業的情況會兩種問題 09/28 02:28
9F:→ alog: 1. 安全性問題:權限劃分不容易控管、資料庫人員不會檢查每 09/28 02:30
10F:→ alog: 一次執行時到底執行了什麼 SQL 在裡面,若該系統被內部人員 09/28 02:30
11F:→ alog: 手賤或刻意都會引發災禍 09/28 02:30
12F:推 alog: 2. 缺乏標準化的概念、維護不容易、速度不見得比SP快 09/28 02:32
13F:→ alog: 我不太清楚到底這位工程師在擔心什麼.. 09/28 02:35
14F:→ alog: 另外再補充 就是留意 command/sql injection 的問題 09/28 02:42
15F:→ alog: 沒意外的話 執行你那張table的client端帳號權限>= 那張tabl 09/28 02:44
16F:→ alog: e所有sql所需權限 09/28 02:44
17F:→ alog: 所以只要那張 table 內在某種狀況下 編寫好的sql 被竄改成非 09/28 02:44
18F:→ alog: 原先預期的結果 09/28 02:44
19F:→ alog: 很有可能資料庫人員連看都沒看就直接給他跑下去了 09/28 02:45
20F:→ alog: 或是裡面塞了一些可以直接寫入資料到系統上的語法埋後門 09/28 02:45
21F:→ alog: 這都是一個問題 09/28 02:46
22F:推 alog: 所以說 SP 怕太多 .. 我不認同 但也只能尊重你們公司的人員 09/28 02:49
23F:→ alog: 畢竟我真的不曉得他在擔心什麼問題 09/28 02:49
24F:推 CGS0: 看越久會發現天才很多,或許他以後想改一個地方 ,就直接修 09/28 07:35
25F:→ CGS0: 正 09/28 07:35
26F:→ testPtt: 直接編到程式不好嗎? 09/28 08:20
27F:推 jj0321: 還遇過JS放SQL呢 09/28 08:40
28F:→ nickerChen: 光權限控管就很麻煩了;該不會他是想要程式版面比較 09/28 09:03
29F:→ nickerChen: 乾淨吧 09/28 09:03
30F:推 mathrew: 其實很多人是根本不知道有其他做法 就傻傻的一直用下去 09/28 09:04
31F:→ bobju: 就只是一種便宜行事的手法而已 找個地方塞sql 09/28 09:15
32F:→ allenxxx: 補設計文件的時候好整理而已 09/28 10:06
33F:→ stevekevin10: SP是指什麼呀? 09/28 10:14
34F:→ iamshiao: sp = stored procedure 09/28 10:19
35F:→ chenxiaowoo: 嗯~我是有把sql log放在cassandra裡過,撈出來執行.. 09/28 10:30
36F:→ chenxiaowoo: 還真沒看過~至於優點...目前沒想到 09/28 10:30
37F:推 b92310051: 優點就是...程式開發時間會比寫sp少...大概吧 09/28 11:14
38F:推 knives: 這以後坑一定很大,還不逃 09/28 12:59
39F:推 Adonisy: 問他是不是沒修過資料庫... 09/28 13:52
40F:推 ChungLi5566: 貴公司沒有原始碼掃描的工具嗎 這有injection耶 09/28 14:03
41F:→ ChungLi5566: 我db讀的值拿去執行,還得經過白名單才能通過掃描 09/28 14:06
42F:推 dou0228: 好處就是以後只有他改的動,別人不敢改 09/28 14:47
43F:推 jinmin88: 坑超大..趕快換工作吧 09/28 16:14
44F:→ testPtt: 有參數的SQL他要怎麼做 09/28 16:30
45F:推 knives: 可能是用print 方式把參數代入,不過還是爛 09/28 16:36
46F:推 a47135: 可能更新資料庫比更新程式簡單XDDD 09/28 17:15
47F:推 pttuser: 我好像有見過,一種類似API概念,可能想把depend db的部 09/28 19:12
48F:→ pttuser: 份留在table,不過當初幫忙review沒多問就給他review+2了 09/28 19:12
49F:→ pttuser: ,哈哈 09/28 19:12
50F:推 atpx: 有種狀況是系統本身就是要執行重複SQL的 09/28 19:22
51F:→ atpx: 正常業務流程完畢的資料, user事後發現錯誤又不想重簽核 09/28 19:23
52F:→ atpx: IT就會提供簡易修改系統給user, 這系統只做執行sql改資料 09/28 19:24
53F:→ atpx: 這個例子跟你的狀況不太相同. 僅說明現實上會有這種狀況 09/28 19:24
54F:噓 accessdenied: 幹,就上有政策下有對策的垃圾工程師! 09/28 19:45
55F:推 ncwd1225: 沒好處,後患無窮 09/28 20:57
56F:→ littlethe: 感謝各位高手的見解,因為小弟知識有限,實在想不到這樣 09/28 22:13
57F:推 neo5277: 二樓整個突破盲點啊哈哈哈哈哈 09/28 22:13
58F:→ littlethe: 做的好處是什麼,但又不希望我誤會對方,所以向你們請教 09/28 22:14
59F:→ littlethe: 我已經禁止該工程師這樣做了,我應該不用換工作啦,感謝 09/28 22:16
60F:→ littlethe: 版友們的好意提醒,我會多注意的 09/28 22:17
61F:→ littlethe: to atpx,確實這狀況和你講的例子不同,你講的例子我可以 09/28 22:34
62F:→ littlethe: 接受,但我狀況是對方當常態在寫,所以我想還是要禁止 09/28 22:36
63F:推 kasume: 前端依條件動態執行不同command , table放的可以是sql,sp, 09/28 23:38
64F:→ kasume: 等,前端系統會有一定的parsing 邏輯 09/28 23:38
65F:推 kasume: 動態彈性夠的系統架構是會用這種方式的 09/28 23:41
66F:→ littlethe: 樓上你講的是比較高階的應用了,我們系統很普通 09/29 00:07
67F:→ ChungLi5566: 比較好奇貴公司的程式寫完不用源碼檢測跟黑箱嗎 09/29 00:11
68F:→ ChungLi5566: 檢測報告就是很好的證據 可以駁回這種不安全的寫法 09/29 00:12
69F:→ littlethe: 我才剛接手,而那工程師是前任主管,所以你可以想像囉 09/29 00:15
70F:推 asship: 是不是用來存 REDO 跟 UNDO 的 log 呢? 09/29 00:43
71F:→ littlethe: 真的不是log 09/29 01:11
72F:→ iFEELing: 我遇過的情況是程式上版有管控 所以AP把SQL藏在DB裡... 09/29 01:47
73F:推 vn509942: 五六年前玩過 09/29 08:34
74F:→ vn509942: 後續交手麻煩 09/29 08:35
75F:推 seedli: 是DB版控用的嗎... 明明就很多版控的軟體啊 像liquibase 09/29 09:55
76F:→ littlethe: 不是版控用的,如果是用在特殊目的,我可以接受的 09/29 22:39







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping 或 站內搜尋

TOP