Dynamics AX projelerinde kullanıcıların bazı temel işlevleri yerine getirebilmeleri için tüm kullanıcılara Sistem kullanıcısı ve Şirketiçi çalışan rollerinin verilmesi tavsiye edilir. Bu sayede yetki çalışmalarında kolaylık sağlanmış olur. Ancak projemizde karşılaşmış olduğumuz bir sorun bu yetkilerin de canlıya geçmeden önce tekrar kontrol edilmesi gerektiğini ortaya çıkardı.

Projemizde yetkilendirme çalışması yaparken bir genel muhasebe rolüne Finansal boyutlar ve Boyut değerleri formlarına sadece okuma yetkisi vermemize rağmen ilgili role atanan kullanıcının silme yetkisine sahip olduğunu gördük. Detaylı olarak analiz ettik, tüm menü itemları, tablo yetkilerini inceledik. Tüm yetkiler doğru tanımlanmış gözüküyordu. Daha sonra kullanıcıdan Sistem kullanıcısı ve Şirketiçi çalışan yetkilerini kaldırarak denediğimizde boyut formlarında sadece okuma yetkisiyle yani istediğimiz şekilde çalıştığını gördük. İki rolü detaylı inceleyince sorunun Sistem kullanıcısının altında yer alan DimensionEssentials privilege inden kaynaklandığını gördük. DimensionEssentials privilege ini AOT den açıp Permission > Tables nodunun altına bakılırsa birçok tabloya yetki verildiği görülüyor.

sis-1

Bunların birçoğu Read yetkisinde ama aralarında finansal boyutlar ve hesap tablosu gibi bazı önemli tablolarda Create ya da Delete yetkisi verilmiş.

sis-2

Finansal boyut tablolarınının sadece görecek şekilde kısıtlanması için aşağıdaki tablolarda erişim seviyesininin Create den Read e getirilmesi gerekiyor:

  • DimensionAlias
  • DimensionAttribute
  • DimensionAttributeLevelValue
  • DimensionAttributeSet
  • DimensionAttributeSetItem
  • DimensionAttributeValue
  • DimensionAttributeValueCombination
  • DimensionAttributeValueCombinationStatus
  • DimensionAttributeValueConsolidation
  • DimensionAttributeValueCostAccounting
  • DimensionAttributeValueFinancialStmt
  • DimensionAttributeValueGroup
  • DimensionAttributeValueGroupCombination
  • DimensionAttributeValueGroupStatus
  • DimensionAttributeValueSet
  • DimensionAttributeValueSetItem
  • DimensionAttributeValueTotallingCriteria
  • DimensionFinancialTag
  • DimensionAttributeValueConsolidation

Aslında sadece DimensionAttributeValue ve DimensionFinancialTag tablolarını kısıtlayınca sorun çözülüyor. Tedbir amaçlı diğer tabloları da read seviyesine çektim. İhtiyaç duyulursa değiştirilebilir. Ancak bu tabloların yetkilerinin Sistem kullanıcısı yerine spesifik bir rol üzerinden verilmesi gerektiğini düşünüyorum.

Hesap tablolarınının sadece görecek şekilde kısıtlanması için aşağıdaki tablolarda erişim seviyesininin Create den Read e getirilmesi gerekiyor:

  • MainAccount
  • MainAccountControlPosting

Bunların haricinde diğer tablolar da kontrol edilip ihtiyaca göre erişim seviyesi düzenlenebilir.