iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
佛心分享-IT 人自學之術

從零開始的MySQL開發旅程系列 第 13

Day13 專題一 利用檢視表保護薪資資料

  • 分享至 

  • xImage
  •  

專題一

  • 內容概要:某一家公司的每個部門都有一位資料庫的使用者,所以任何部門例如行銷、會計、技術、法務、客服等等都有權限存取員工的資料,但現在希望只有人力資源部門的資料庫使用者才能存取到員工的薪資資料。
  • 做法:因為需要隱藏特定的資料所以會使用到檢視表,允許人力資源部門能顯示指定資料表的資料列
  • 步驟一
    • 建立資料庫business
    • 建立資料表employee
      • 建立資料列和其資料類型。其中employee_id設為主要索引鍵並具有auto_increment的屬性因此可以自動插入序數而且可以確保是每一個值會是比前一格值大1
        https://ithelp.ithome.com.tw/upload/images/20240831/20168759Eory5TkJEz.png
  • 步驟二
    • 插入員工資料
    • 查詢資料表,可以發現都有成功插入資料表,而且是所有部門的資料庫使用者都可存取
      https://ithelp.ithome.com.tw/upload/images/20240831/20168759ZyFxJyRRbF.png
  • 步驟三
    • 建立檢視表,命名為v_employee,且內容去掉salary來讓其他部門可以存取其他資料
      https://ithelp.ithome.com.tw/upload/images/20240831/20168759voGeInqRNP.png
  • 步驟四
    • 控制權限
      • 首先如果先前有建立相關使用者先刪除,並在創建不同部門的使用者,以便後面可以測試使用者的權限
        https://ithelp.ithome.com.tw/upload/images/20240831/20168759qyFLputctX.png

        https://ithelp.ithome.com.tw/upload/images/20240831/20168759fI6TsBHYmB.png

      • 調整權限-以命令grant

        • 授權給使用者hr_user@localhost能在資料庫business中的資料表employee中做查詢、顯示(select)、刪除(delete)、插入(insert)、更新(update)、清除(drop)的動作
          https://ithelp.ithome.com.tw/upload/images/20240831/20168759AJT73TovW9.png
        • 授權使用者accounting_user@localhost、marketing_user@localhost、legal_user@localhost、technology_user@localhost可以在檢視表v_employee中做查詢顯示
          https://ithelp.ithome.com.tw/upload/images/20240831/201687596QhEBwc709.png
  • 結論:現在只有使用者hr_user@localhost可以查詢資料表employee來存取所有資料員工包含員工薪資的資料,如果其他使用者想要查詢資料表employee會顯示錯誤,只能查詢檢視表v_employee來選取或存取想要的資料

下一章:專題二 利用觸發器追蹤投票者資料異動


上一篇
Day12 自訂函式、程序
下一篇
Day14 專題二 利用觸發器追蹤投票者資料異動(上)
系列文
從零開始的MySQL開發旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言