iT邦幫忙

DAY 9
7

Microsoft Dynamics NAV ERP系統完全攻略系列 第 9

Microsoft Dynamics NAV 2009 R2的系統管理及客製(二)

今天我將專注在系統權限管理設定的操作...
Microsoft Dynamics NAV 2009 R2的系統權限是由兩個地方連結串起來的.

  1. SQL Server的登入帳號, 按SQL Server安裝的環境, 有Windows或SQL Server兩種驗證方式
  2. Dynamics NAV的角色設定, 角色定義了每個工作角色能夠使用那些物件, 以及能不能使用物件進行新增、修改、刪除等等作業

而SQL Server登入帳號與角色的串連, 就構成了Dynamics NAV的系統權限. 也就是說, 登入Dynamics NAV的帳號就是在SQL Server的Login帳號, 而, 在Dynamics NAV中指定角色與登入帳號的關聯, 就構成該帳號可使用的Dynamics NAV的權限.

我們先在SQL Server Management Studio的'登入'中加入需要使用Dynamics NAV的帳號...

基本上, Dynamics NAV會使用帳號'sa'為系統帳號...自動給予'SUPER'角色, 但如果在安裝SQL Server時, 有指定SQL Server系統管理帳號, 就會以該系統管理帳號為Dynamics NAV的系統帳號, 並賦予'SUPER'角色. 各位可以在上圖看到'PROBFACE\Administrator', 就是因為我在安裝SQM Server時指定了Windows Authentication及把安裝時登入的網域管理帳號當成SQL Server系統管理帳號.

記得把新加入SQL Server的登入帳號對應到NAV的資料庫...還要給'db_owner'的權限, 因為登入NAV要讀取很多Tables...

昨天提到過, 要進行系統管理, 一定要使用Classic Client, 執行Classic Client, 進入Dynamics NAV, 到[Tools]功能項, 再選'Security', 就可以看到和權限功能有關的三個子功能項..

  • Role: 就是管理Dynamics NAV的角色...

打開[Role]視窗, 可以看到'Role ID'、'Name', 以及'Role' Button, 而'Role' Button又提供了'Database Logins', 'Windows Logins'及'Permissions'三個子功能選單, 'Database Logins'及'Windows Logins'功能和主選單[Tools]的'Security'下的'Database Logins'及'Windows Logins'一樣...點表格中的'ALL', 再打開'Permisions'..

可以看到'ALL All users - Permissions'視窗...

表格中各欄位是:

  • Object Type, 就是昨天談到Object Designer中的各個Object...如下圖..

    這是在指定角色可使用的Object
  • Object ID是指Object在Dynamics NAV的惟一的識別ID, 也可以在Object Designer看到.
  • Object Name...
  • Read, 可否使用該Object查詢資料
  • Insert, 可否使用該Object新增資料
  • Modified, 可否使用該Object修改資料
  • Delete, 可否使用該Object刪除資料
  • Execute, 可否使用該Object執行作業, 多半是Codeunit物件
  • Security Filter, 可以設定Where條件, 限定該角色可使用該Object處理的資料

接下來我想介紹一個比較特別的角色: SUPER...

看一下SUPER的Permissions...

可以看到Object Type把所有物件類型都列出來了...而且, Object ID為0, 所有的權限都設為'Yes', 因此'SUPER'這個角色具有Dynamics NAV中最大的權限, 但是, 能用什麼樣的功能, 還是要看買了那些授權.

  • Database Logins...

輸入SQL Server登入帳號, 然後按'Role'...叫出'SA - Roles'視窗...

在'Role ID'欄位中有個向上箭號, 按下去就到了'Role'視窗, 挑選角色後回到Database Logins視窗就可以看到'SUPER'被列進來了...

可以為同一登入帳號加入好多個Roles, 最後權限會是這些Roles的權限的聯集.

如果這個登入帳號是一般使用者帳號, 不使用是'SUPER'角色, 記得一定要加入'ALL'角色, 否則無法登入NAV.

  • Windows Logins...

第一個帳號是網域管理帳號, 強列建議如果環境中有Active Directory網域, 就把NAV Server加入網域. 這個Windows Logins可以抓到網域帳號, 來當成NAV的登入帳號, 但前提是要能登入SQL Server...所以, 如果用的是SQL Server 2008/2008 R2, 就要考慮Kerbros驗證環境.

談到這裏, 今天的分享要告一段落了, 在結束前還要再說明...之前提到同一帳號可以設置多個角色, 這時該帳號的權限是所有角色的聯集...

但在角色中, 例如Table Data開放了Payment Terms的Read、Insert、Delete及Modified的權限, 而有個Form: Payment Terms, 只開放了Read、Modified權限時, 這時該角色對Payment Terms資料表只能有Read、Modified的權限, 因為是遵循交集法則...

所以, 在設置權限時, 要記得角色中對物件的權限是採交集法則, 而登入帳號對角色的權限是採聯集法則...

以上, 我們明天再見...接下來兩天將會討論我如何評估ERP系統的方法...


上一篇
Microsoft Dynamics NAV 2009 R2的系統管理及客製(一)
下一篇
如何評分ERP系統
系列文
Microsoft Dynamics NAV ERP系統完全攻略30

1 則留言

0
mike5201
iT邦新手 4 級 ‧ 2011-11-17 13:34:23

To simon:您說角色是採用交集法則,那代表著在不同的角色裡,如果相同Object Type時,權限有設置一樣才會生效嗎?不一樣是不會生效的嗎?

我要留言

立即登入留言