我覺得一個程序員在公司沒有數據庫權限意味著安全,規范,合理。
所謂安全,可以說保護數據安全,公司安全,員工安全。
數據被篡改了,公司的客戶可能要炸毛,輕則一頓投訴,重則按照合同問責,追究責任。
數據泄露了,公司是第一責任體,輕則被問責,重則無窮大,好巧不巧公司還在做著要命的工作,什么政府系,銀行系,公共服務系,我覺得公司多半會涼涼。
程序員本員,即使不是故意的,不小心搞壞了部分數據,或者拷貝了部分數據,也是直接問責,要知道數據雖然由公司制作的軟件生產,但是所有權歸屬于客戶,所謂數字資產這就是其中一類,公司作為管家肯定是不能同意把數據隨意開放給你的。
所謂規范,即從項目合同,法律法規,行業規范出發對數據保存訪問的要求。
每個項目對數據的保密要求是不同的,或者需要專門的保密員,比如軍工系,政府系,只有他們才能解除傳數據用的介質,或者需要DBA或者保密委員會之類的專門數據交換處理部門,最不濟也得按照權限分配和讀寫賬號,一般只讓用只讀得賬號查看數據,反正我是沒有見過可以數據裸奔的項目。
所謂合理,從程序員本身的工作出發,職業習慣應該具有的數據權限范圍。
我們猜想直接擁有數據庫權限,你可能會做的事兒:
有功能改動,數據需要更新,寫個腳本刷一下。
看看線上數據庫數據,確定功能正常不正常。
有個bug造成了錯誤數據,寫個sql改過來
運營想找什么樣數據,讓我幫忙導出來
其實,一切的直接操作數據庫都可以用功能上線來解決,只不過麻煩一些,流程會多一些。一些需求可能寫個腳本提交為工單,讓DBA進行審查,把問題修復的時間線拉長,影響范圍擴大,我認為這種代價付出也是必要的。
我要保證我的所有操作都留下了我操作的痕跡,留足了證據,萬一在這段時間有什么異常出現,有人指認是由于我動了數據庫造成,我能拿出什么證據來自證清白呢。
從我自己的日常工作來說,我是非常抵觸要數據庫權限的,基于以上我的考慮,離生產數據有多遠就離多遠,我不想做販賣數據的生意,也不想擔數據泄露的責任,如果我的bug導致數據出錯,我光明正大的修復認責,做一個專業的程序員。