各位前輩們好,我目前有一個購票網站
架構大概是每建立一個新的購票活動,就會在資料庫建立一個專屬該活動的新資料庫
並且對每個活動的資料庫,都會建立一個只能存取該資料庫的login和user
然後另外有一個存放目前共有哪些活動的資料庫
在開發的過程中為了方便,應用程式都是使用一個有Sysadmin角色的帳號開發
現在想要調整這個帳號的權限,讓其不要有那麼大的權限,但碰到幾個問題
1.因為該帳號需要能夠新建資料庫與新增使用者,建資料庫這部分能夠另外給權限沒問題
但建立使用者的權限好像不能單獨給予,只能夠隨著Securityadmin角色給予
而這個角色權限基本和Sysadmin差不多大
想請問是不是從架構上,就不應該規劃成讓應用程式能夠建立資料庫的login?
2.目前該最大權限的帳號是放在一個config檔案內,隨server啟動載入
想請問這樣是否會有安全性問題?
需要將帶有Sysadmin寫在code內,再另外建立一個沒有那麼大權限的帳號來存取共用資料庫嗎?
3.這個跟權限比較沒關係
每次新建資料庫時,裡面都有一些預設的資料表
目前是只要建立新資料庫時,就會從一個bak檔案還原成資料庫並改名
想請問這種作法有沒有甚麼問題,如果是使用產生指令碼的方式來建立會比較好嗎?
以上問題想請問各位前輩們的意見,謝謝
我就問
1.如果我在五場活動都有購票
我要註冊幾組帳號密碼
系統要替我建立幾組sqlserver的login
2.萬一在第五場活動發現有欄位長度不夠需要修改
你會修改另外四場活動的資料庫嗎?
1.抱歉沒有說明清楚,我指的是建立活動的同時會建立專門給應用程式使用的login和user,所有對該新資料庫的存取都是透過新建立的login和user。不是指每一個使用者都要建一組login和user,所有的使用者都是用一樣的。
2.如果有需要的話會改。
以這個架構來說,暫時沒有想到甚麼解決方法
因為先從一開始的規劃,由AP建立活動的專屬資料庫開始,就注定要提供很大權限給AP端了(開資料庫的權限)
這個方式沒有改變,應該很難有突破
再來後續連線個資料庫的帳密,是想到可以提供一個Securityadmin件的共用權限管理庫,裡面是存放活動專案所需的TABLE及相關帳密
這樣每個專案活動就能利用不同的DB login(不是USER login)去連線Connection了
其實就有點類似你user login的方式(你將每個專案的USER存在各自的資料庫TABLE供不同的專案活動利用),只是又拆分一個更上層的專案管理者LOGIN TABLE