کنترل دسترسی کارمندان — چه کسی چه چیزی را میبیند
در یک صرافی، بزرگترین ریسک همیشه از بیرون نمیآید. اصل حداقل دسترسی، جداسازی وظایف و لاگ فعالیت سه ستون کنترل داخلیاند. چطور تعیین کنیم هر کارمند چه ببیند و چه نبیند.
وقتی از ریسک یک صرافی حرف میزنیم، ذهن به سراغ فیش جعلی، نرخ اشتباه، یا مشتری بدحساب میرود. اما یک ریسک بیسروصداتر و اغلب پرهزینهتر وجود دارد: ریسک داخلی. کارمندی که به هر چیزی دسترسی دارد، کارمندی که هم ثبت میکند و هم تأیید، تغییری در سند که هیچ ردی از خود بهجا نمیگذارد. این مقاله دربارهٔ سه ستون کنترل دسترسی داخلی است: اصل حداقل دسترسی، جداسازی وظایف، و لاگ فعالیت.
چرا کنترل دسترسی، نه اعتماد
بگذارید یک سوءتفاهم رایج را کنار بگذاریم. کنترل دسترسی بهمعنای بیاعتمادی به کارمندان نیست. بهمعنای این است که سیستم را طوری بسازید که حتی اگر کسی بخواهد اشتباه یا خطا کند، نتواند بهتنهایی و بیرد انجامش دهد. این تفاوت میان «امیدوارم کسی خطا نکند» و «سیستم اجازهٔ خطای بیرد را نمیدهد» است.
در حسابداری، اعتماد یک استراتژی نیست. کنترلِ قابلاثبات است. کارمند خوب هم از سیستمی که فعالیتش را ثبت میکند سود میبرد — چون وقتی چیزی اشتباه پیش برود، لاگ ثابت میکند او مقصر نبوده.
ستون اول: اصل حداقل دسترسی
اصل حداقل دسترسی (Principle of Least Privilege) یک قاعدهٔ ساده دارد: هر کارمند فقط به آنچه برای انجام کارش لازم دارد دسترسی داشته باشد — نه یک ذره بیشتر.
- صندوقدار به ثبت تراکنش نیاز دارد، نه به دیدن گزارش سود و زیان کل صرافی.
- کارمند حواله به پروندهٔ مشتریانِ خودش نیاز دارد، نه به حسابهای محرمانهٔ شرکا.
- حسابدار به گزارشها نیاز دارد، شاید نه به تغییر نرخ لحظهای.
مشکل بیشتر نرمافزارها این است که دسترسی را «همه یا هیچ» میدهند: یا کاربر ادمین است و همهچیز را میبیند، یا کاربر محدود است و کارش راه نمیافتد. کنترل دسترسی واقعی باید دانهریز (granular) باشد — تا سطح تکگزارش و تکحساب.
یک مثال عملی
فرض کنید صرافیای با پنج کارمند دارید. جدول دسترسی مطلوب چیزی شبیه این است:
| نقش | ثبت تراکنش | تأیید تراکنش | دیدن سود و زیان | تغییر نرخ | مدیریت کاربران |
|---|---|---|---|---|---|
| صندوقدار | بله | خیر | خیر | خیر | خیر |
| کارمند حواله | بله | خیر | خیر | خیر | خیر |
| حسابدار | خیر | بله | بله | خیر | خیر |
| مدیر عملیات | بله | بله | بله | بله | خیر |
| مدیر ارشد | بله | بله | بله | بله | بله |
توجه کنید که هیچکس در ردیفهای اول هم ثبت میکند و هم تأیید. این عمداً است — که ما را به ستون دوم میرساند.
ستون دوم: جداسازی وظایف
جداسازی وظایف (Segregation of Duties) شاید مهمترین اصل کنترل داخلی باشد: کسی که یک عمل را انجام میدهد نباید همان عمل را تأیید کند. فرد ثبتکننده و فرد تأییدکننده باید دو نفر متفاوت باشند.
چرا؟ چون وقتی یک نفر هم ثبت میکند و هم تأیید، هیچ نقطهٔ کنترلی وجود ندارد. آن فرد میتواند یک تراکنش ساختگی بسازد، خودش تأییدش کند، و هیچ چشم دومی آن را نبیند. جداسازی وظایف یک چشم دوم اجباری میسازد.
مثالهای کلاسیک جداسازی وظایف در یک صرافی:
- ثبت حواله و تأیید پرداخت دو دست جدا.
- ثبت واریزی و تطبیق با گردش حساب دو نقش جدا.
- تعریف مشتری جدید و تخصیص سقف اعتبار دو تصمیم جدا.
نکتهٔ ظریف: جداسازی وظایف بدون کنترل دسترسی دانهریز غیرممکن است. اگر نتوانید به یک کاربر «حق ثبت» بدهید ولی «حق تأیید» ندهید، جداسازی وظایف فقط یک آرزو روی کاغذ است، نه یک کنترل واقعی.
ستون سوم: لاگ فعالیت
دو ستون اول از خطا پیشگیری میکنند. ستون سوم خطا را قابلکشف میکند. لاگ فعالیت (Activity Log) یعنی سیستم ثبت میکند چه کسی، چه کاری، و کِی انجام داد.
بدون لاگ، وقتی یک سند اشتباه پیدا میشود، تنها چیزی که دارید یک بحث است: «من ثبت نکردم»، «پس کی کرد؟». با لاگ، پاسخ یک واقعیت است، نه یک ادعا. لاگ خوب این ویژگیها را دارد:
- لحظهای: هر عمل، در همان لحظه ثبت میشود، نه با تأخیر.
- جامع: ثبت، ویرایش، حذف، ورود، تغییر نرخ — همه ثبت میشوند.
- تغییرناپذیر: خودِ لاگ نباید توسط کاربران عادی قابلدستکاری باشد.
- قابلجستجو: باید بتوانید بپرسید «این سند را چه کسی و کِی تغییر داد؟» و پاسخ فوری بگیرید.
لاگ فعالیت فقط ابزار مچگیری نیست. اثر پیشگیرانهاش مهمتر است: وقتی همه میدانند هر کاری ثبت میشود، انگیزهٔ خطا بهشدت افت میکند. یک دوربین روشن، بهتر از ده هشدار عمل میکند.
این سه ستون در نکستو
یک نرمافزار حسابداری صرافی که این سه ستون را جدی بگیرد، باید هم دسترسی دانهریز بدهد و هم همهچیز را لاگ کند. در نکستو:
- مجوز تا سطح تکگزارش و تکحساب: میتوانید دقیقاً تعیین کنید هر کاربر کدام گزارش و کدام حساب را ببیند — نه «همه یا هیچ». همین دانهریزی است که جداسازی وظایف را از حرف به عمل میرساند.
- لاگ لحظهای همهٔ عملیات همهٔ کاربران: هر ثبت، ویرایش و حذف با نام کاربر و زمان ثبت میشود، لحظهای و قابلبازبینی.
- حساب بایگانی: حسابهای حساس یا قدیمی را میتوان کاملاً پنهان کرد تا از دید کاربرانی که نباید ببینند خارج شوند.
این ترکیب یعنی شما میتوانید به یک صندوقدار جدید دسترسی بدهید بدون اینکه نگران باشید سود کل صرافی یا حساب شرکا را ببیند، و در عین حال بدانید هر کاری که کرد، ثبت شده است.
چکلیست راهاندازی کنترل دسترسی
پیش از اینکه کارمند بعدی را به سیستم اضافه کنید:
- نقشها را تعریف کردهاید؟ (صندوقدار، حواله، حسابدار، مدیر…)
- برای هر نقش، حداقل دسترسی لازم را مشخص کردهاید؟
- ثبت و تأیید در دو نقش جدا هستند؟
- لاگ فعالیت روشن و قابلبازبینی است؟
- حسابهای حساس از دید نقشهای عملیاتی پنهان شدهاند؟
هر «نه» در این فهرست، یک شکاف کنترلی باز است که روزی هزینهاش را میپردازید.
جمعبندی
کنترل دسترسی کارمندان بر سه ستون میایستد: حداقل دسترسی (هرکس فقط آنچه لازم دارد)، جداسازی وظایف (ثبتکننده جدا از تأییدکننده)، و لاگ فعالیت (چه کسی، چه کرد، کِی). دو ستون اول از خطا پیشگیری میکنند، سومی آن را قابلکشف. اینها بیاعتمادی به کارمندان نیستند؛ ساختاریاند که هم صرافی و هم کارمند خوب را محافظت میکنند. و همهٔ اینها به یک پیشنیاز فنی وابستهاند: سیستمی که دسترسی را دانهریز بدهد و همهچیز را ثبت کند.
برای اینکه ببینید سوابق و بکاپ در کنار این کنترلها چطور مالکیت دیتای شما را تضمین میکنند، این مقاله را هم بخوانید: بکاپ و مالکیت دیتا.
میخواهید ببینید مجوزدهی تا سطح تکگزارش و لاگ لحظهای در عمل چطور کار میکند؟ یک دموی اختصاصی بسازید و چند نقش متفاوت را تعریف کنید.
همینها را در نکستو ببینید
یک نسخهٔ کامل و اختصاصی با دیتای نمونه — بدون نصب، بدون کارت بانکی.