關於資料庫表欄位的資料許可權設計

來源:互聯網
上載者:User

吐槽:剛在同事的幫忙下,把maven工程成功匯入到eclipse,期間遇到的最大問題就是安裝eclipse外掛程式,花費了其中大部分的時間


現在做的研發產品,遇到的一個新的需求是“控制外部系統對於表中欄位的存取權限”,其實說白了,就是“對於CRUD操作,操作的欄位根據欄位許可權表來做的”。但是,我覺得真正要做到對於資料庫表欄位的許可權設計,面臨一下幾個問題:

問題一:對於資料庫表中的非空欄位和非空欄位在做欄位許可權設計的時候要不要納入進去,如果納入進去的話,該怎麼進行設計???


在舉例子之前,我先把設計的表結構開放出來供大家討論,以下是表結構


其中:

ID:主鍵

SYSTEM_ID:系統id

SERVICE_ID:服務id

FIELD_NAME:欄位名

ISNULL:是否非空

OPERATION:資料庫操作

這就是那個資料庫表欄位許可權控製表,針對每一個操作(CRUD),他們的所操作的資料庫表欄位是不同的。如果在某一個操作裡,對於某一個欄位該系統是沒有操作許可權的,但是在資料庫裡又是非空欄位,在做create操作的時候就會有問題


問題二:對於多個系統的操作來說,也就是多個SYSTEM_ID,我們在進行編碼設計的時候,會有很多不同的資料庫操作,對錶欄位的存取權限也是不同的,怎麼才能設計一個通用的功能實現,做到為多個系統提供統一的一個表欄位許可權控制,到目前為止,我還沒有一個比較通用的設計實現


另一個說說我自己的針對當前項目的也就是demo工程的一個實現,可以把這個系統可以操作的欄位,放到一個List裡面,然後傳到DAO裡,然後去動態拼接SQL語句。但是這也存在著一個問題,如果一個表的欄位很多,我需要把該表的所有欄位都要在SQL語句中羅列出來,而且 對於不同的欄位類型,我們還需要在SQL語句裡進行必要的類型轉換,例如:Date類型。所以,一個通用的設計實現比較重要。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.