背景
H2 Database Console未授權訪問,默認情況下自動創建不存在的數據庫,從而導致未授權訪問。各種未授權訪問的教程,但是它怎么封堵呢?
-ifExists
很簡單,啟動參數添加 -ifExists
,它的含義:
[-ifExists] Only existing databases may be opened (all servers)
應用出廠時先創建好數據庫文件后,修改啟動腳本,添加該參數:
dir=$(dirname "$0")
nohup java -cp "$dir/h2-2.x.xx.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Server -tcpAllowOthers -webAllowOthers -tcpPort -ifExists "$@" &
這樣啟動 h2 后首次訪問時會因為 test 數據庫不存在而無法連接:
只有輸入正確的出廠數據庫路徑、帳號和密碼,才能連接到操作頁面。
其他嘗試
還有一個 -webAdminPassord
參數,但是加上后一直報不支持的操作異常,最后只好作罷。