【SQL】隨記:消失的字-ASCII

同事回覆說沒有權限登入,但是看系統中已經把該同事的權限角色,設定好了,為什麼還是不行呢?看了MySQLWorkbench很久,仍百思不得其解。

直到放在sublime中檢查裡面的資料時候,發現有個奇怪的字!有ASCII的<0x08>。

整個崩潰....


測試運作環境:

  • MySQLWorkbench:8.0.17 CE
  • MySQL:8.0.17
  • OS:Mac OS Catalina 10.15.5 
  • iTerm:3.3.6

 

 


前提故事:

收到回報有個使用者沒有權限進入系統中。

於是去系統查看發現...沒事呀!權限設定都很好,但是卻被系統拒絕,到底是怎麼回事呢?

觀察:

去database看看資料到底是啥,看起來都很正常呀,無論用terminal還是MySQLWorkbench都是正常顯示:

  • terminal(iTerm)

  • MySQLWorkbench

試著用MySQLWorkbench產出UPDATE的語法看看,還是看不出什麼端倪:

UPDATE `USER_ROLE` SET `REFERENCE` = '5268' WHERE (`ID` = 'aaaaaaf8b8544c4e8cad90dd963ed5fe');

最後想說複製到Sublime text來做記錄檔,就發現,原來bug在這邊!!

就是在5268前面有個<0x08>,這個是ASCII的字在上面,而ASCII在一般的介面是不會出來,所以我們一直都找不到!所以只要把<0x08>拿掉就好。

百思不得其解,明明是用複製的方式怎麼還有ASCII在裡面呢?在想會不會本來的文檔就有,但是我們複製時候沒有注意,畢竟在視覺上,ASCII不太會出現。


 

 

~Copyright by Eyelash500~

IT技術文章EY*研究院
iT邦幫忙eyelash*睫毛
Blog睫毛*Relax
Facebook睫毛*Relax