一、兩個(gè)后臺(tái)應(yīng)用(J2EE)操作同一個(gè)數(shù)據(jù)庫(kù)有什么風(fēng)險(xiǎn)
這個(gè)問題在項(xiàng)目組不同的階段,策略是不一樣的。如果是剛組建的項(xiàng)目組,或者創(chuàng)業(yè)型的公司,開發(fā)效率優(yōu)異先,跑慢了你就死了。這個(gè)時(shí)候?qū)τ诜?wù)端開發(fā)來(lái)說就直接訪問DB就行了。建兩個(gè)程序賬號(hào),各用各的,定好操作DB的SQL和DDL規(guī)范,尤其是DDL改表結(jié)構(gòu),嚴(yán)格執(zhí)行規(guī)范。
如果是成規(guī)模的公司,那應(yīng)該分開,每個(gè)DB只有一個(gè)程序賬號(hào),起碼只有一個(gè)可以增刪改,owner指定到負(fù)責(zé)人,否則會(huì)亂,出了問題DBA都不知道誰(shuí)負(fù)責(zé)。從代碼結(jié)構(gòu)上看,也是不建議DB層有多個(gè)業(yè)務(wù)耦合的,一個(gè)是數(shù)據(jù)不安全,一個(gè)是增加了運(yùn)維難度。
信息安全倒沒什么問題。但是如果數(shù)據(jù)庫(kù)是對(duì)方系統(tǒng)的一部分,還是通過接口訪問更好。
首先,畢竟對(duì)方要對(duì)數(shù)據(jù)負(fù)責(zé),如果數(shù)據(jù)被篡改或刪除,他們是要負(fù)責(zé)任的。系統(tǒng)里已經(jīng)做了身份認(rèn)證,授權(quán)的控制,也有審計(jì)日志,這樣出了問題是可以查審計(jì)日志的。
第二,系統(tǒng)僅暴露其他系統(tǒng)需要的信息,無(wú)關(guān)的信息盡量保護(hù)在系統(tǒng)內(nèi)部。放開數(shù)據(jù)庫(kù)訪問太隨意了。萬(wàn)一其他系統(tǒng)代碼寫的不嚴(yán)謹(jǐn),出現(xiàn)問題不好定位。
第三,系統(tǒng)通過接口暴露數(shù)據(jù),隱藏?cái)?shù)據(jù)存儲(chǔ)的細(xì)節(jié)。如果兩個(gè)系統(tǒng)通過數(shù)據(jù)庫(kù)耦合,一邊修改了庫(kù)表結(jié)構(gòu),另一邊都要修改代碼。
延伸閱讀:
二、Navicat是什么
Navicat是一套快速、可靠和全面的數(shù)據(jù)庫(kù)管理工具,專門用于簡(jiǎn)化數(shù)據(jù)庫(kù)管理和降低管理成本。Navicat圖形界面直觀,提供簡(jiǎn)便的管理方法,設(shè)計(jì)和操作MySQL、MariaDB、SQL Server、Oracle、PostgreSQL和SQLite的數(shù)據(jù)。
Navicat提供一個(gè)直觀和設(shè)計(jì)完善的用戶界面,用于創(chuàng)建、修改和管理資料庫(kù)的所有對(duì)象,例如表、視圖、函數(shù)或過程、索引、觸發(fā)器和序列。我們的表設(shè)計(jì)器幫助用戶創(chuàng)建和修改數(shù)據(jù)庫(kù)的表,讓設(shè)置高級(jí)選項(xiàng),如關(guān)系、限制、觸發(fā)器和更多。
使用Navicat瀏覽和修改數(shù)據(jù),插入、編輯、刪除數(shù)據(jù)或復(fù)制和粘貼記錄到數(shù)據(jù)表形式的數(shù)據(jù)編輯器,Navicat將運(yùn)行相應(yīng)的命令(例如INSERT或UPDATE),免除寫復(fù)雜的SQL。廣泛的數(shù)據(jù)編輯工具令編輯工作更為方便,例如外鍵查找、set/enum選擇器和記錄篩選。