আপনার প্রথম প্রশ্নের জবাবে, একটি নির্দিষ্ট অনুমতিের পরিবর্তে কোনও ব্যবহারকারীর ভূমিকা রয়েছে কিনা তা যাচাই করা নিয়ে সবচেয়ে বড় সমস্যাটি হ'ল অনুমতিগুলি একাধিক ভূমিকা পালন করতে পারে। এর উদাহরণ হিসাবে, কোনও বিকাশকারীর সংস্থার ইন্ট্রনেটে বিকাশকারী পোর্টালটি দেখতে অ্যাক্সেস থাকতে পারে, এটি সম্ভবত তাদের পরিচালকের দ্বারা অনুমোদিত একটি অনুমতিও। যদি কোনও ব্যবহারকারী বিকাশকারী পোর্টালটি অ্যাক্সেস করার চেষ্টা করে থাকে তবে আপনার অনুরূপ একটি চেক লাগবে:
if(SecurityUtils.hasRole(developer)) {
// Grant them access to a feature
} else if(SecurityUtils.hasRole(manager)) {
// Grant them access to a feature
} else if...
( switch
আপনার পছন্দের ভাষাতে একটি বিবৃতি আরও ভাল হবে, তবে এখনও বিশেষভাবে পরিচ্ছন্ন নয়)
অনুমতি যত বেশি সাধারণ বা ব্যাপকভাবে অনুষ্ঠিত হয়, কোনও নির্দিষ্ট সিস্টেমে অ্যাক্সেস করতে সক্ষম কিনা তা নিশ্চিত করার জন্য আপনার আরও তত বেশি ব্যবহারকারীদের ভূমিকা পরীক্ষা করতে হবে। এটি এই সমস্যারও দিকে নিয়ে যাবে যে যতবার আপনি কোনও ভূমিকার জন্য অনুমতিগুলি সংশোধন করেন, এটি প্রতিফলিত করার জন্য আপনার চেকটি পরিবর্তন করতে হবে। একটি বৃহত সিস্টেমে এটি খুব তাড়াতাড়ি খুব অনস্বাস্থ্যে পরিণত হবে।
আপনি যদি সহজেই পরীক্ষা করে থাকেন যে ব্যবহারকারীর অনুমতি রয়েছে যা তাদের বিকাশকারী পোর্টালে অ্যাক্সেসের অনুমতি দেয়, উদাহরণস্বরূপ, তাদের ভূমিকা কী তা বিবেচ্য নয়, তাদের অ্যাক্সেস দেওয়া হবে।
আপনার দ্বিতীয় প্রশ্নের উত্তর দেওয়ার জন্য, আপনার ভূমিকাগুলির কারণ হ'ল অনুমতিগুলির "প্যাকেজগুলি" সংশোধন ও বিতরণ করা যেমন তারা সহজ কাজ করে। আপনার যদি এমন একটি সিস্টেম থাকে যার শত ভূমিকা এবং কয়েক হাজার অনুমতি রয়েছে তবে নতুন ব্যবহারকারী যুক্ত করার জন্য (উদাহরণস্বরূপ কোনও নতুন এইচআর পরিচালক) আপনাকে অন্যান্য এইচআর পরিচালকদের যে একক অনুমতি দেওয়া উচিত তা দিয়ে যেতে হবে। এটি কেবল ক্লান্তিকরই হবে না, তবে ম্যানুয়ালি করা গেলে এটি ভুল হওয়ার ঝুঁকিতে পড়ে। এটি কোনও ব্যবহারকারীর প্রোফাইলে কেবল "এইচআর পরিচালক" ভূমিকা যুক্ত করার সাথে তুলনা করুন, যা তাদের সেই ভূমিকার সাথে অন্যান্য ব্যবহারকারীর মতোই অ্যাক্সেস প্রদান করবে।
আপনি তর্ক করতে পারেন যে আপনি কেবল কোনও বিদ্যমান ব্যবহারকারীর ক্লোন করতে পারেন (যদি আপনার সিস্টেম এটি সমর্থন করে) তবে এটি ব্যবহারকারীকে সেই মুহুর্তের জন্য যথাযথ অনুমতি দেওয়ার সময় ভবিষ্যতে সমস্ত ব্যবহারকারীর জন্য অনুমতি যুক্ত বা অপসারণের চেষ্টা হতে পারে কঠিন। এর উদাহরণের একটি দৃশ্যটি হ'ল যদি অতীতে এইচআর কর্মীরাও বেতনের দায়িত্বে ছিলেন, তবে পরে সংস্থাটি বেতনের ব্যবস্থাপনার জন্য বিশেষত কর্মীদের নিয়োগের পক্ষে যথেষ্ট পরিমাণে বৃদ্ধি পায়। এর অর্থ হ'ল এইচআরটির আর পে-রোল সিস্টেমটি অ্যাক্সেস করার দরকার নেই, যাতে অনুমতিটি সরানো যায়। আপনার যদি এইচআর এর বিভিন্ন 10 জন সদস্য থাকে তবে আপনাকে ম্যানুয়ালি যেতে হবে এবং নিশ্চিত করা উচিত যে আপনি সঠিক অনুমতিটি সরিয়ে দিয়েছেন যা ব্যবহারকারীর ত্রুটির সম্ভাবনা প্রবর্তন করে। এটির সাথে অন্য সমস্যাটি হ'ল এটি কেবল স্কেল করে না; যেহেতু আপনি প্রদত্ত ভূমিকাতে আরও বেশি বেশি ব্যবহারকারী লাভ করেন এটি একটি ভূমিকার পরিবর্তন আরও অনেক বেশি কঠিন করে তোলে। ভূমিকার ব্যবহারের সাথে এটির তুলনা করুন, যেখানে আপনাকে অনুমতিটি সরাতে কেবল প্রশ্নে ওভাররিচিং ভূমিকাটি পরিবর্তন করতে হবে, যা সেই ভূমিকাটি ধারণকারী প্রতিটি ব্যবহারকারীর দ্বারা প্রতিফলিত হবে।