• محدودیت های دسترسی نوشته های تلفن تغییر کرده است. کنترل دسترسی و محدودیت دید توسط سازمان ها، بخش ها، مکان های ذخیره سازی و طرف مقابل. تنظیم مجوزها برای کاربران فردی

    البته، خوب است که بتوانید دسترسی هر برنامه ای را به اطلاعات شخصی خود محدود کنید. اگر واقعاً می خواهید این کار را انجام دهید، مقاله ما قطعاً مفید خواهد بود. با این حال، این فقط برای آن دسته از کاربرانی اعمال می شود که سیستم عامل اندروید 4.3 را روی دستگاه خود نصب کرده اند. در آخرین نسخه این سیستم عامل بود که یک ویژگی بسیار جالب ظاهر شد که به شما امکان می دهد هر برنامه ای را مدیریت کنید. تعجب نکنید که هرگز او را در خانه خود ندیده اید. از چشم کاربران پنهان است، اما امروز به شما خواهیم گفت که چگونه آن را پیدا کنید و چگونه شروع به استفاده از آن کنید.

    این گزینه "عملیات در برنامه ها" نامیده می شود، حتی به احتمال زیاد یک گزینه نیست، بلکه یک برنامه خاص است. فقط در لیست سایر برنامه ها، لیست نشده است. فقط از دو طریق می توان آن را فراخوانی کرد.

    راه اول با کمک یک لانچر جایگزین است. ما به شما توصیه می کنیم از Nova Launcher استفاده کنید. و در اینجا آنچه باید انجام دهید:

    1. ابتدا یک فضای خالی در دسکتاپ خود پیدا کنید و روی آن ضربه بزنید تا یک زیر منو ظاهر شود. از همه لیست شده در آن، "میانبر" را انتخاب کنید:

    2. از میان همه میانبرهای موجود، باید «عملکردهای فعلی» را انتخاب کنید:

    3. از لیست اقدامات، روی "تنظیمات" کلیک کنید:

    5. و در حال حاضر در این تنظیمات می توانید گزینه یا برنامه "عملیات در برنامه ها" را پیدا کنید. روی آن کلیک می کنیم.

    پس از آن، میانبری به نام "تنظیمات" روی دسکتاپ شما ظاهر می شود. با کلیک بر روی آن، همیشه پنجره ای با برنامه ای برای مدیریت برنامه ها باز می شود. علاوه بر این، اکنون می توانید تمام مجوزهای هر برنامه ای را مدیریت کنید.

    راه دوم برای فراخوانی برنامه Application Actions استفاده از یک ابزار ساده به نام "QuickShortcutMaker" است. می توانید آن را از فروشگاه برنامه Google Play Market پیدا و دانلود کنید.

    سپس این ابزار را نصب می‌کنید، آن را اجرا می‌کنید و آیتمی به نام «تنظیمات» را در آن پیدا می‌کنید. می توانید آن را در اولین تب "عملکردها" در منوی اصلی برنامه پیدا کنید. در این تنظیمات، دوباره می توانید خط "عملیات در برنامه ها" را پیدا کنید. با کلیک بر روی آن، میانبر این گزینه در دسکتاپ شما ظاهر می شود که پس از آن می توان QuickShortcutMaker را حذف کرد و میانبر همچنان باقی خواهد ماند.

    در مورد برنامه مدیریت مجوزها در برنامه ها، استفاده از آن بسیار ساده است، زیرا منوی آن، در اصل، بصری است. در مجموع، منو شامل چهار تب است: "مکان"، "داده های شخصی"، "SMS / MMS" و خود دستگاه، که در آن لیستی از همه برنامه های نصب شده وجود دارد. در مرحله بعد، هر برنامه ای را که به آن علاقه دارید پیدا کرده و انتخاب می کنید تا دسترسی آن به داده های شما یا موارد مشابه را محدود کنید. و سپس شما قبلاً محدودیت های مورد نظر را خودتان تعیین کرده اید.

    همانطور که می بینید، همه چیز بسیار ساده است. عجیب است که هیچ کس این ویژگی را اعلام نکرد. به احتمال زیاد، این برنامه هنوز در حال توسعه است و به همراه کل سیستم مدیریت برنامه بهبود بیشتری خواهد یافت.

    ممکن است که کاربران چنین وضعیتی داشته باشند: او هر گونه اقدامی را برای برنامه محدود کرده است، اما خودش هیچ ایده ای در مورد آن ندارد. در آینده با اجرای این اپلیکیشن ممکن است برخی از خرابی ها و خطاها ظاهر شود تا عملیات صحیح امکان پذیر نباشد.

    چیزی که در این برنامه از دست رفته این است که خود به برنامه اطلاع می دهد که این یا آن ویژگی غیرفعال شده است. همچنین ممکن است برخی از کاربران فراموش کنند که چیزی را غیرفعال کرده اند و فکر کنند که خود برنامه در همه چیز مقصر است.

    می خواهم توجه داشته باشم که چنین گزینه ای قبلاً پیاده سازی شده است و در فریمور جایگزین CyanogenMod استفاده می شود و عملکرد آن نیازی به بهبود عمده ندارد.

    در اندروید، می‌گوید «محدودیت‌های دسترسی تغییر کرده‌اند»

    "محدودیت های دسترسی تغییر کرد." چنین پیامی اغلب در صفحه نمایش آنها دیده می شود دارندگان گوشی های هوشمند دستگاه هایی از خانواده مدل های Moto X، Moto G و Nexus. این هشدار مدام در نوار لغزنده اعلان ظاهر می شود و سپس ناپدید می شود. علاوه بر این، مشکل ناشی از خطا در نرم افزار یا سخت افزار دستگاه اندرویدی نیست، بلکه فقط یک پیام ساده از عملکرد تماس اضطراری است. تلفن e. علیرغم اینکه این اعلان کاملاً بی ضرر است، کاربران را آزار می دهد و حتی آنها را می ترساند. در واقع، برای افراد ناآگاه، عبارت "محدودیت های دسترسی تغییر کرده است" می تواند به معنای هر چیزی باشد - از جمله مسدود کردن انتقال داده یا سرویس صوتی.

    آیا راهی برای خلاص شدن از شر اعلان وجود دارد " محدودیت های دسترسی تغییر کرد"؟ خیر آیا ارزش آن را دارد که به روش خاصی واکنش نشان دهیم؟ گاهی ارزشش را دارد. اگر توانایی ارسال پیامک یا دریافت تماس را از دست داده اید، یک راه اندازی مجدد ساده ممکن است وضعیت را برطرف کند. همچنین اگر در طول روز از سیم کارت معیوب استفاده کرده باشید یا کارت را به دفعات در اسلات ها عوض کرده باشید، ممکن است پیام خطا رخ دهد. اعلان همچنین هنگام تغییر شبکه ظاهر می شود، یعنی. از 2G به 3G یا 3G به 4G و بالعکس. و این اساساً هنگام استفاده از داده تلفن همراه خود را نشان می دهد و هنگام اتصال به شبکه Wi-Fi ناپدید می شود. به طور کلی، مشکل اصلی از دست دادن شبکه یا تغییر از 3G به 2G است - برای کاربرانی که به یک شبکه تلفن همراه با قابلیت انتقال داده با سرعت بالا نیاز دارند.

    چگونه از شر اعلان «محدودیت‌های دسترسی تغییر کرده» در اندروید خلاص شویم گوشی هوشمند e؟

    روش 1: مسدود کردن اعلان ها روشن است تلفن با استفاده از یک برنامه شخص ثالث
    قبل از استفاده از این روش، بررسی کنید که آیا دستگاه اندرویدی شما یک عملکرد داخلی برای خاموش کردن اعلان ها دارد یا خیر. این ویژگی ممکن است برای تلفن هوشمند با Android 5.0 Lollipop و 6.0 Marshmallow، اما برخی از نسخه های سیستم ممکن است اجازه دسترسی را ندهند.

    1. به تنظیمات ->> صداها و اعلان ها - >> برنامه ها بروید.
    2. به پایین بروید و روی "تلفن" کلیک کنید؛
    3. Turn Notifications Off را انتخاب کنید.
    4. اگر چنین عملکردی در شما تلفن موجود نیست، باید از برنامه های شخص ثالث استفاده کنید.

    اگر اندروید خود را روت کرده اید گوشی هوشمند، شما به راحتی می توانید با مشکل مقابله کنید. می‌توانید برنامه‌هایی را دانلود کنید که اعلان «مجوزها تغییر کرده‌اند» را مسدود می‌کنند. برای این شما باید اجرا کنید اقدامات زیر:

    1. برنامه ای را دانلود کنید که اعلان ها را مسدود می کند - مانند Notify Block
    2. برنامه را باز کنید (از شما خواسته می‌شود به اعلان‌ها دسترسی بدهید)، با فشار دادن "OK" دسترسی مورد نیاز را اعطا کنید.
    3. بعد، در برنامه، باید علامت کادر "پنهان کردن برنامه های سیستم" را بردارید.
    4. به پایین بروید و روی «تلفن» (com.android.phone) ضربه بزنید.

    اکنون باقی مانده است که دستگاه را مجدداً راه اندازی کنید و ببینید آیا خطا برطرف شده است. در داخل برنامه مسدودکننده اعلان، ممکن است چندین نماد «تلفن» پیدا کنید. اگر مراحل بالا کمکی نکرد، سعی کنید اعلان‌ها را برای همه نمادهای تلفن در برنامه خاموش کنید.

    روش 2: برنامه Notify Clean را نصب کنید (برای دستگاه های دارای حقوق ریشه)
    برای استفاده از این روش، باید حقوق ریشه در اندروید داشته باشید- گوشی هوشمند و Xposed Framework را نصب کنید (بسیاری از کاربران مدتهاست که از قابلیت های این نرم افزار برای نصب افزونه ها به سیستم عامل اندروید استفاده کرده اند و با موفقیت استفاده می کنند).

    1. Notify Clean را نصب کرده و باز کنید
    2. به پایین اسکرول کنید و روی Phone ضربه بزنید
    3. روی "محدودیت های دسترسی تغییر کرد" کلیک کنید.
    4. دستگاه خود را مجددا راه اندازی کنید و مطمئن شوید که اعلان ها در دستگاه شما غیرفعال هستند.

    اگر تلفن هوشمند یا تبلت اندرویدی بگوید «محدودیت‌های دسترسی تغییر کرده است» چه باید کرد.

    سلام به خوانندگان عزیز. امروز ما مجموعه ای از مقالات را در مورد محدود کردن دسترسی به اطلاعات در سیستم عامل ویندوز شروع می کنیم.

    در پست امروز یاد خواهید گرفت چگونه با استفاده از خود ویندوز دسترسی به پوشه ها و فایل ها را محدود کنیم، اما در مورد برنامه های ویژه ای که در آن دخیل هستند، در مقالات بعدی که نوشتم صحبت خواهیم کرد.
    بیایید با استعدادهای ذاتی زاده فکر مایکروسافت شروع کنیم.

    محدود کردن دسترسی به فایل ها و پوشه ها با ابزارهای داخلی ویندوز.

    شرط لازم برای اعمال محدودیت، وجود چندین حساب در سیستم است، نه با حقوق مدیر، و همچنین اینکه سیستم فایل روی دیسک ها با فرمت NTFS مطابقت داشته باشد.
    به عبارت دیگر، مدیر برای سایر کاربران بدون حقوق مدیر محدودیت هایی را برای نوشتن، خواندن و غیره تعیین می کند.
    از طریق یک حساب کاربری با حقوق سرپرست، آن دسته از کاربرانی که به آن دسترسی خواهند داشت در ویژگی های پوشه مورد نظر نشان داده می شوند. اگر کاربر بدون حقوق سعی کند به پوشه دسترسی پیدا کند، رمز عبور درخواست می شود.

    تغییر مجوزهای گروه [رد کردن]:

    بنابراین، اجازه دهید دسترسی را با کمک ممنوعیت ها محدود کنیم. برای انجام این کار، روی پوشه یا فایل مورد نظر کلیک راست کرده و - را انتخاب کنید. خواص"، سپس به برگه بروید -" ایمنی"و در این برگه دکمه -" را فشار دهید تغییر دادن».

    در مرحله بعد، پنجره ای باز می شود که روی دکمه " کلیک می کنیم. اضافه کردن". در اینجا، نام اشیاء انتخاب شده (ورودی / نام کاربری) را وارد می کنیم، که همچنان از دسترسی به پوشه محروم می شود. سپس " را فشار دهید نام ها را بررسی کنیدبرای اطمینان از وارد کردن نام صحیح:

    برای مسدود کردن دسترسی به همه کاربران، نام را وارد کنید " همه” (حساس به حروف کوچک و بزرگ)، سیستم متوجه خواهد شد. سپس در ستون ممنوع کردن"کادرهای مواردی را که می خواهید ممنوعیت تعیین کنید علامت بزنید و روی "OK" کلیک کنید.
    در نتیجه، کاربرانی که مشخص کرده‌اید نمی‌توانند به پوشه یا فایل مشخص شده دسترسی داشته باشند، اما درست است، اگر فقط وارد سیستم تحت حساب خود شوند. فقط برای اینکه بدانید، اگر شخصی، به عنوان مثال، از یک درایو فلش با حقوق مدیر وارد سیستم شود، به پوشه و تمام محتویات آن دسترسی خواهد داشت.

    تغییر مجوزهای گروه [مجوزها]:

    اکنون اجازه دهید دسترسی به پوشه را نه با ممنوعیت، بلکه با باز کردن حقوق فقط برای کاربران خاص محدود کنیم.
    برای انجام این کار، ما همه کاربران را از لیست دسترسی حذف می کنیم و فقط کاربران مورد نیاز خود را در آنجا اضافه می کنیم.
    ممکن است هنگام تلاش برای حذف یک عنصر خطایی رخ دهد، زیرا به طور پیش فرض از دایرکتوری والد به ارث برده می شوند. بنابراین ما " را فشار می دهیم علاوه بر این -> تغییر مجوزها..."و تیک " را بردارید مجوزهای به ارث رسیده از اشیاء والد را اضافه کنید»
    در ویندوز 10، روی « علاوه بر این"دکمه کلیک بعدی" غیرفعال کردن وراثت".
    سیستم می پرسد " اضافه کردن" یا " حذف". در ویندوز 10، سیستم همچنین به شما دو گزینه برای انتخاب می دهد - " مجوزهای ارثی را به مجوزهای صریح در این شی تبدیل کنید"و" تمام مجوزهای ارثی را از این شی حذف کنید". من فکر می کنم همه چیز در اینجا روشن است. با اضافه کردن کاربر مورد نظر، ما قبلاً کادرهای ستون را بررسی می کنیم " اجازه».

    بیایید خلاصه کنیم

    بنابراین، امروز، خوانندگان عزیز، اولین امکان را برای محدود کردن دسترسی به پوشه ها و فایل های خاص با استفاده از ابزارهای داخلی ویندوز در نظر گرفته ایم. این روش قابل اعتمادترین نیست، اما برای محافظت از "مواد مخفی" از چشمان کنجکاو کاربران بی تجربه مناسب است.
    در پست بعدی به یکی دیگر از ویژگی های ویندوز که به صورت پیش فرض در سیستم تعبیه شده است می پردازیم که به شما امکان می دهد داده های ارزشمند را رمزگذاری کرده و در نتیجه دسترسی به آن ها را محدود کنید. این EFS (سیستم فایل رمزگذاری) است - یک سیستم رمزگذاری داده در سطح فایل در سیستم عامل های ویندوز (شروع با ویندوز 2000 و بالاتر)، به استثنای نسخه های "خانه".

    اغلب اوقات زمانی پیش می آید که چند نفر در یک کامپیوتر کار می کنند و مطلوب است که دسترسی به فایل ها و پوشه های شخصی هر کاربر به سایر کاربران محدود شود. شما می توانید به طور کلی دسترسی را رد کنید، یا می توانید آن را محدود کنید: برای مثال، یک کاربر باید دسترسی کامل را باز کند، دیگری باید فقط خواندنی باشد، و شخصی به طور کلی رد می شود.

    چرا این کار را انجام دهید، احتمالاً هر یک از شما بدون تذکر من متوجه می شوید. و در اینجا نحوه انجام این کار آمده است دسترسی به فایل ها را محدود کنیددر ویندوز 7 همه نمی دانند. بنابراین، ما این فرآیند را با جزئیات زیادی تجزیه و تحلیل خواهیم کرد.

    محدود کردن دسترسی به فایل ها و پوشه ها در ویندوز 7

    البته برای شروع، لازم است در مورد شی تصمیم گیری شود که دسترسی به آن را محدود خواهیم کرد. بنابراین، ما یک فایل یا پوشه را انتخاب کرده و طبق الگوریتم زیر عمل می کنیم:

    1. با دکمه سمت راست ماوس روی شی (فایل یا پوشه) کلیک کنید و "Properties" را انتخاب کنید.

    2. در پنجره ای که باز می شود، تب “Security” را انتخاب کنید. در آن است که حقوق کاربران برای دسترسی به یک فایل یا پوشه خاص مشخص می شود.

    قسمت بالا همه کاربران یا گروه های کاربری ایجاد شده در سیستم را نمایش می دهد. با کلیک بر روی یک مورد خاص، می توانید حقوق یک کاربر خاص را برای این شیء مشاهده و تغییر دهید. برای اینکه کاربر به طور کامل از "لمس" یک پوشه یا فایل خاص جلوگیری کند، آن را از لیست بالا حذف کنید.

    3. اگر نتوانید حقوق یک کاربر خاص را حذف یا تغییر دهید، تمام حقوق او از "والد" به ارث می رسد. برای اینکه همچنان بتوانید حقوق کاربر را به یک شی خاص محدود کنید، موارد زیر را انجام دهید: به تب "امنیت" در ویژگی های فایل برگردید و روی دکمه "پیشرفته" کلیک کنید (در قسمت نمایش حقوق کاربر (شکل بالا را ببینید) .

    پنجره "تنظیمات امنیتی پیشرفته" باز می شود:

    اگر به صورت پیش فرض باز نشد، به برگه «مجوز» بروید. سپس بر روی دکمه "تغییر وضوح" کلیک کنید. در مرحله بعد تیک "Add permission inherited from parent objects" را بردارید، پس از خواندن پیام هشدار، روی دکمه "Add" کلیک کنید. و سپس "OK" را همیشه تا زمانی که به برگه "امنیت" خصوصیات فایل بازگردید، "OK" را انتخاب کنید.

    اکنون می توانید حقوق دسترسی کاربران به یک شی خاص را بدون محدودیت تغییر دهید.

    مقادیر مجوز دسترسی

    بیایید نگاهی دقیق تر به معانی حقوق کاربر خاص بیندازیم:

    • دسترسی کامل - همه چیز در اینجا بسیار ساده است: همه عملیات با شی مجاز است، از جمله تغییر مجوز و تبدیل شدن به مالک شی.
    • تغییر - با پاراگراف قبلی تفاوت دارد زیرا مجاز است فقط عملیات اصلی را با شی انجام دهد، یعنی. خواندن، اصلاح، ایجاد و حذف یک شی. تغییر مجوز شی فعلی و مالک شدن آن مجاز نیست.
    • خواندن و اجرا- برای خودش صحبت می کند: می توانید محتویات شی را مشاهده کرده و برنامه ها را اجرا کنید.
    • فهرست محتویات پوشه- مانند پاراگراف قبل، فقط در مورد دایرکتوری ها.
    • خواندن - فقط مشاهده شی مجاز است.
    • Write - به شما امکان می دهد فایل ها را ایجاد کرده و داده ها را روی آنها بنویسید.
    • مجوزهای ویژه- اینها مجوزهایی هستند که با کلیک بر روی دکمه "پیشرفته" تنظیم می شوند.
    ملاحظات ویژه هنگام تنظیم مجوزهای فایل و پوشه
    • به شما توصیه می کنم به موارد زیر توجه کنید:
    • اگر کادر مجوز با اولویت بالاتر را علامت بزنید، پرچم‌های مجوزهای وابسته به طور خودکار بررسی می‌شوند.
    • تنظیم مجوز روی «غیرفعال کردن» اولویت بیشتری نسبت به «فعال کردن» دارد.
    • تغییر مجوزهای یک دایرکتوری به طور خودکار مجوزهای همه اشیاء تودرتو (پوشه ها و فایل ها) را تغییر می دهد.
    • اگر مجوزهای خاصی در دسترس نباشد، از پوشه والد به ارث می رسد.
    • اگر حق تغییر مجوزها را ندارید، تمام چک باکس ها در دسترس شما نخواهند بود.
    • هنگام تغییر مجوز برای گروه ها (به عنوان مثال: "مدیران"، "کاربران"، "سیستم")، مجوزهای مربوطه برای همه کاربران این گروه به طور خودکار تغییر می کند.
    • مجوزهای گروه "System" را تغییر ندهید، ممکن است عملکرد سیستم عامل را مختل کند.

    هنگام تغییر مجوزها برای یک شی خاص، مراقب باشید و مراقب باشید. چندین مجوز را در یک جلسه به طور همزمان تغییر ندهید، پس از اعمال تغییرات، حتماً عملکرد سیستم را بررسی کنید.

    شی پیکربندی "نقش" مجموعه ای از حقوق را برای عملیات (عملیات) روی اشیاء پیکربندی می دهد.

    نقش "حقوق کامل".

    این فقط یک نقش (از پیش تعریف نشده) است که دارای چک باکس هایی برای انواع حقوق در تمام اشیاء پیکربندی است.

    وجه تمایز آن با سایر نقش‌ها، وجود حق «اداره» است.

    اگر حداقل یک کاربر ایجاد شود، سیستم شروع به بررسی حق "اداره" می کند - حداقل یک کاربر باید آن را داشته باشد.

    دسترسی را در سطح رکورد محدود کنید

    امنیت سطح ردیف (RLS) - محدودیت در سطح رکورد.

    مکانیسم محدودیت های دسترسی به داده ها به شما امکان می دهد حقوق دسترسی را نه تنها در سطح اشیاء ابرداده، بلکه در سطح اشیاء پایگاه داده نیز مدیریت کنید. برای محدود کردن دسترسی به داده ها می توان از اشیاء زیر استفاده کرد:

    • نقش ها،
    • گزینه های جلسه،
    • گزینه های کاربردی،
    • ماژول های مشترک ممتاز،
    • کلمه کلیدی ALLOWED در زبان پرس و جو.

    این مکانیزم برای محدود کردن دسترسی به رکوردهای جدول اشیاء فراداده با توجه به شرایط دلخواه اعمال شده بر مقادیر فیلدهای ردیف این جداول طراحی شده است. به عنوان مثال، برای مشاهده سوابق فقط برای طرفین، سازمان ها و غیره "شما".

    اجرای فنی محدودیت های دسترسی در 1C

    1C یک درخواست به DBMS ایجاد می کند. خوشه سرور یک بخش WHERE را به درخواست اضافه می کند که حاوی متن شرط برای محدود کردن دسترسی توسط RLS است، سپس این درخواست به DBMS ارسال می شود، داده های استخراج شده به مشتری 1C بازگردانده می شود.


    این مکانیسم برای هر درخواستی از مشتری کار می کند:

    • در گزارش ها
    • در لیست های پویا و فرم های لیست منظم
    • در درخواست های تصادفی

    چنین پیاده سازی مکانیزم به شدت بر عملکرد تأثیر می گذارد.

    راه هایی برای دور زدن محدودیت های دسترسی

    در عملیات‌های بزرگ با منابع فشرده (مثلاً پردازش اسناد ارسال مجدد)، بخشی از کد را می‌توان به ماژول‌های ممتاز منتقل کرد.

    آ) ماژول ممتاز یک ماژول مشترک با پرچم "ممتاز" در خواص است.

    ویژگی آن در این واقعیت است که کد موجود در آن بدون هیچ گونه کنترل دسترسی از جمله RLS اجرا می شود.


    ب) همچنین ممتازحالت را می توان فعال کرد برای ماژول های شی سند. این کار در ویژگی های سند، پرچم انجام می شود

    • حالت ممتاز هنگام نگه داشتن
    • حالت ممتاز هنگام عدم برنامه ریزی


    ج) روش SetPrivilegedMode()

    یک فرمان سیستمی که به شما امکان می دهد بخشی از کد هر ماژول را دارای امتیاز کنید.

    از خط بعدی کد، حالت ممتاز اجرای اجرا خواهد شد.

    تا خط غیرفعال کردن این حالت یا تا پایان رویه / عملکرد عمل می کند

    (درست است، واقعی)؛

    // هر کدی در اینجا بدون کنترل حقوق و RLS اجرا خواهد شد

    SetPrivilegedMode(دروغ )؛ // یا پایان رویه / تابع

    تعداد فعال‌سازی حالت ممتاز باید با تعداد غیرفعال‌سازی‌ها مطابقت داشته باشد. با این حال، اگر حالت ممتاز (یک یا چند بار) در یک رویه یا عملکرد فعال شده باشد، اما غیرفعال نشده باشد، سیستم به‌طور خودکار هر چند بار که فعال‌سازی‌های معلق در رویه یا عملکرد رها شده باشد، خاموش شدن را انجام می‌دهد.

    اگر در یک روش یا تابع متد فراخوانی شود SetPrivilegedMode(نادرست) بیشتر از فراخوانی های متد انجام شده است SetPrivilegedMode(درست است) سپس یک استثنا پرتاب می شود

    تابع PrivilegedMode() اگر حالت ممتاز همچنان فعال باشد، True و اگر حالت ممتاز کاملاً غیرفعال باشد، نادرست را برمی‌گرداند. تعداد تنظیمات حالت ممتاز را در یک عملکرد خاص تجزیه و تحلیل نمی کند.

    همه رویه ها و توابع فراخوانی شده نیز در حالت ممتاز اجرا خواهند شد.


    همچنین امکان شروع یک جلسه ممتاز نیز وجود دارد. این جلسه ای است که در آن حالت ممتاز از همان ابتدای سیستم تنظیم می شود. در همان زمان، در طول عملیات، روش PrivilegedMode() همیشه True را برمی گرداند و قابلیت غیرفعال کردن حالت ممتاز پشتیبانی نمی شود. فقط یک کاربر با حقوق مدیریت (حق مدیریت) می تواند یک جلسه ممتاز را شروع کند. جلسه را می توان با استفاده از سوئیچ خط فرمان برای راه اندازی برنامه مشتری UsePrivilegedMode یا پارامتر رشته اتصال پایگاه اطلاعات prmod آغاز کرد.


    این سوال به طور طبیعی مطرح می‌شود: پس چرا اصلاً محدودیت‌های دسترسی را تعیین می‌کنیم، اگر به این راحتی می‌توان از آن عبور کرد؟

    حالت امن.

    بله، امکان نوشتن پردازش خارجی با حالت اجرای ممتاز و تخلیه / خراب کردن داده ها وجود دارد. برای جلوگیری از این امر، سیستم دارای یک روش زمینه جهانی است

    SafeMode را تنظیم کنید().

    حالت ایمن، در میان چیزهای دیگر، حالت ممتاز را نادیده می گیرد.

    باید قبل از فراخوانی برنامه‌نویسی کنترل‌کننده‌های خارجی یا صادرات رویه‌ها و توابع از ماژول‌های آنها تنظیم شود.

    هنگام اجرای عملیات ممنوعه در زمان اجرا، یک استثنا ایجاد می کند.

    علاوه بر این، برای کاربران، می‌توانید قابلیت راه‌اندازی تعاملی گزارش‌های خارجی و پردازش در سطح تنظیمات نقش را غیرفعال کنید.

    تنظیم محدودیت دسترسی

    RLS را فقط می توان برای حقوق پیکربندی کرد:

    • خواندن (انتخاب)
    • افزودن (درج)
    • تغییر (به روز رسانی)
    • حذف (حذف)

    برای عملیات خواندنو حذف، شی در پایگاه داده باید با محدودیت دسترسی به داده مطابقت داشته باشد.

    برای عملیات افزودنمحدودیت دسترسی به داده باید با شیئی که برای نوشتن در پایگاه داده برنامه ریزی شده است مطابقت داشته باشد.

    برای عملیات تغییرمحدودیت دسترسی به داده باید هم قبل از تغییر (برای خواندن شی) و هم بعد از تغییر (برای نوشتن شی) با شی مطابقت داشته باشد.

    برای همه حقوق دیگر، این گزینه در دسترس نیست.

    بیایید یک محدودیت جدید برای حق "خواندن" کتاب مرجع "نامگذاری" اضافه کنیم. لیستی از فیلدهایی که می توانید محدودیت اضافه شده را برای آنها پیکربندی کنید باز می شود.

    این بدان معناست که اگر سعی کنید به فیلدهای چک باکس دسترسی داشته باشید، محدودیت کار خواهد کرد و اگر سعی کنید به فیلدهای بدون علامت دسترسی داشته باشید، محدودیت کار نخواهد کرد.

    اگر پرچم را انتخاب کنید سایر زمینه ها"، محدودیت برای تمام فیلدهای جدول تنظیم می شود، به جز فیلدهایی که محدودیت ها به صراحت برای آنها تعیین شده است.


    *ویژگی: برای حقوق اضافه کردن، تغییر، حذف:

    • محدودیت فقط برای همه فیلدها قابل پیکربندی است.
    • فقط یک محدودیت می تواند وجود داشته باشد.

    برای سمت راست "Read"، می توانید چندین شرط را تنظیم کنید، آنها با عملگر منطقی "AND" ترکیب می شوند.

    در محدودیت های مربوط به اشیاء پایگاه داده از انواع زیر، نمی توان از تمام فیلدهای شی داده اصلی محدودیت استفاده کرد:

    • در ثبت‌های انباشت، محدودیت‌های دسترسی فقط می‌توانند شامل اندازه‌گیری هدف اصلی محدودیت باشند.
    • در ثبت‌های حسابداری در محدودیت‌ها، فقط می‌توانید از اندازه‌گیری‌های موجودی هدف اصلی محدودیت استفاده کنید

    اگر در شرایط دسترسی محدود به داده های ثبت گردش انباشت، از اندازه گیری هایی استفاده شود که در مجموع ها لحاظ نشده باشد، در هنگام دسترسی به جدول گردش مجازی، از مجموع های ذخیره شده استفاده نمی شود و پرس و جو به طور کامل مطابق با آن اجرا می شود. به میز حرکت

    مکانیزم برای اعمال محدودیت های دسترسی.

    هر عملیاتی بر روی داده های ذخیره شده در پایگاه داده در 1C:Enterprise در نهایت منجر به دسترسی به پایگاه داده با درخواست برای خواندن یا تغییر داده ها می شود. در هنگام اجرای پرس و جوها در پایگاه داده، مکانیسم های داخلی 1C:Enterprise محدودیت های دسترسی را اعمال می کند. که در آن:

    • لیست حقوق تشکیل شده است(خواندن، افزودن، به روز رسانی، حذف)، فهرستی از جداول پایگاه داده، و فهرستی از فیلدهای مورد استفاده توسط این پرس و جو.
    • از همه نقش های کاربر فعلی محدودیت های دسترسی را انتخاب کنیدبه داده ها برای همه حقوق، جداول و فیلدهای مربوط به درخواست. علاوه بر این، اگر هر نقشی حاوی محدودیت های دسترسی به داده های جدول یا فیلد نباشد، به این معنی است که مقادیر فیلدهای مورد نیاز از هر رکوردی در این جدول موجود است. به عبارت دیگر، عدم وجود محدودیت دسترسی به داده به این معنی است که محدودیت WHERE True وجود دارد.
    • مقادیر فعلی تمام پارامترهای جلسه و گزینه های عملکردی را دریافت کنیدمشارکت در محدودیت های انتخاب شده

    برای دریافت مقدار یک پارامتر جلسه یا گزینه عملکردی، کاربر فعلی حق دریافت آن مقدار را ندارد. با این حال، اگر مقدار برخی از پارامترهای جلسه تنظیم نشده باشد، خطا رخ می دهد و کوئری پایگاه داده اجرا نمی شود.

    محدودیت های ناشی از همان نقش با یک عملیات AND ترکیب می شوند.

    محدودیت های دریافت شده از نقش های مختلف با عملیات OR ترکیب می شوند.

    شرایط ساخته شده به پرس و جوهای SQL اضافه می شوند که با آن 1C: Enterprise به DBMS دسترسی دارد. هنگام دسترسی به داده ها از سمت شرایط محدودیت دسترسی، هیچ بررسی حقوقی انجام نمی شود (نه به اشیاء ابرداده و نه برای اشیاء پایگاه داده). علاوه بر این، مکانیسم اضافه کردن شرایط بستگی به نحوه عملکرد انتخابی محدودیت های "همه" یا "مجاز" دارد.


    *ویژگی: اگر کاربر به چند نقش با محدودیت های پیکربندی شده در سطح رکوردها به یک شی دسترسی داشته باشد، در این حالت شرایط محدودیت ها با عملیات منطقی "OR" اضافه می شود. به عبارت دیگر، مجوزهای کاربر تجمعی هستند.

    این منجر به نتیجه زیر می شود: اجازه ندهید که شرط محدود کردن دسترسی به یک شی در نقش های مختلف عبور کند، زیرا در این صورت متن پرس و جو بسیار پیچیده تر می شود و این بر عملکرد تأثیر می گذارد.

    همه راهها.

    وقتی محدودیت‌هایی با استفاده از روش «همه» اعمال می‌شود، شرایط و فیلدهایی به جستارهای SQL اضافه می‌شود تا 1C:Enterprise بتواند اطلاعاتی در مورد اینکه آیا داده‌های ممنوعه برای کاربر معین در فرآیند اجرای یک پرس و جو پایگاه داده استفاده شده است یا خیر، به دست آورد. . اگر از داده های ممنوعه استفاده شده باشد، به دلیل نقض دسترسی، درخواست لغو می شود.

    اعمال محدودیت های دسترسی به روش "همه" به صورت شماتیک در شکل نشان داده شده است:


    روش "مجاز".

    هنگامی که محدودیت ها با استفاده از روش "مجاز" اعمال می شوند، چنین شرایطی به پرس و جوهای SQL اضافه می شوند تا ورودی های ممنوعه برای کاربر فعلی بر نتیجه پرس و جو تأثیر نگذارند. به عبارت دیگر، هنگامی که محدودیت ها در حالت "مجاز" اعمال می شود، رکوردهای ممنوعه برای این کاربر مفقود تلقی می شوند و بر نتیجه عملیات که به طور شماتیک در شکل نشان داده شده است تأثیری نمی گذارد:


    هنگامی که 1C:Enterprise به پایگاه داده دسترسی پیدا می کند، محدودیت های دسترسی به داده ها بر روی اشیاء پایگاه داده اعمال می شود.

    در نسخه سرویس گیرنده-سرور 1C:Enterprise، محدودیت هایی بر روی سرور 1C:Enterprise اعمال می شود.

    با این حال، اگر به جدولی در پرس و جو مراجعه کنیم که محدودیت های دسترسی برای آن پیکربندی نشده است، اما در آن پیوندهایی به ردیف های جدول با محدودیت های پیکربندی شده وجود دارد، این گزینه (ALLOWED) کار نخواهد کرد. در این صورت، نتیجه پرس و جو خواهد بود "<Объект не найден>……” به جای مقدار فیلد مرجع.


    اگر در حال توسعه گزارش یا پردازش با استفاده از پرس و جوهای پیکربندی عمومی یا سفارشی هستید، همیشه پرچم "مجاز" را بررسی کنیدتا گزارش کار کند تحت هر کاربریبا هر مجموعه ای از حقوق

    در مورد داده های خواندن شی از پایگاه داده، نمی توان پرچم "مجاز" را تنظیم کرد. بنابراین لازم است با در نظر گرفتن محدودیت‌های احتمالی در حقوق دسترسی، انتخاب‌ها را برای خواندن شی پیکربندی کنیدبرای کاربر هیچ وسیله ای برای به دست آوردن تنها داده های مجاز در فناوری شی وجود ندارد.

    مهم است که اگر کلمه کلیدی ALLOWED در یک پرس و جو مشخص نشده باشد، تمام فیلترهای مشخص شده در آن پرس و جو نباید با هیچ یک از محدودیت های خواندن اشیاء پایگاه داده استفاده شده در پرس و جو تضاد داشته باشند. علاوه بر این، اگر از جداول مجازی در پرس و جو استفاده شود، فیلترهای مربوطه باید بر روی خود جداول مجازی اعمال شوند.

    تمرین 1. Query builder در تنظیمات RLS.

    بیایید متن بخش "WHERE" را در پرس و جو به دایرکتوری بنویسیم. می توانید از سازنده پرس و جو استفاده کنید.
    سازنده کوتاه شده است.


    برگه "جدول"

    جدول اصلی، جدول شی ای خواهد بود که محدودیت برای آن پیکربندی می شود.

    همچنین می توانید جداول دیگری را انتخاب کنید و روابط مختلفی را بین آنها در برگه "روابط" تنظیم کنید.

    برگه شرایط

    در اینجا می توانید شرایط واقعی برای محدود کردن دسترسی را پیکربندی کنید.

    بیایید شرایطی را برای ویژگی "قیمت" فهرست سهام برای حق "خواندن" به تمام فیلدهای جدول اضافه کنیم.

    "نامگذاری WHERE نامگذاری. قیمت > 500"

    بیایید ببینیم این قانون ساده چگونه کار می کند. جدول مرجع شامل عناصر زیر است:


    پس از تنظیم محدودیت دسترسی، جدول فقط عناصری را نشان می دهد که شرایط را برآورده می کنند:


    گروه ها نیز ناپدید شده اند. متن محدودیت را تغییر دهید

    "نامگذاری WHERE نامگذاری. قیمت > 500

    OR Nomenclature.This یک گروه است"

    خب، حالا این چیزی است که شما نیاز دارید.


    اگر نمایش فیلد "کد" را در تنظیمات لیست حذف کنید، تمام عناصر دایرکتوری نمایش داده می شوند، به عنوان مثال. محدودیت کار نکرد اگر نمایش فیلد "کد" را تنظیم کنید، محدودیت کار خواهد کرد.


    در عین حال، علیرغم اینکه عنصر جستجو در فیلد لیست قابل مشاهده است، فرم آن باز نمی شود، زیرا محدودیتی در ویژگی تنظیم شده است. در یک درخواست دلخواه هم به همین صورت: هنگام تلاش برای دریافت ویژگی "محدود"، خطای دسترسی وجود خواهد داشت.


    اگر سعی کنید پروپ های "محدود" را به صورت برنامه ریزی شده دریافت کنید، یک خطای دسترسی نیز ایجاد می شود.


    علاوه بر این، دسترسی به هیچ یک از فیلدهای شی از طریق پیوند غیرممکن خواهد بود، زیرا هنگامی که یک پیوند دریافت می شود، سیستم کل شی را می خواند و اگر جزئیات "محدود" داشته باشد، شی خوانده نمی شود.

    بنابراین، هنگام کار با آبجکت های پایگاه داده به صورت برنامه نویسی، باید محدودیت های احتمالی در سطح رکورد را در نظر داشته باشید و تمام داده های شی مورد نیاز را با یک کوئری دریافت کنید و سپس آنها را در یک ساختار قرار دهید یا بخشی از کد را در یک ماژول ممتاز اجرا کنید.

    پس از تنظیم محدودیت دسترسی، نمایش خط در لیست حقوق تغییر کرد - خاکستری شد و یک نماد ظاهر شد.

    محدودیت های پیکربندی دسترسی (RLS).

    • بدون بخش خلاصه
    • شما نمی توانید به جداول ثبت مجازی دسترسی داشته باشید.
    • شما نمی توانید به صراحت از پارامترها استفاده کنید.
    • از سوالات فرعی می توان استفاده کرد any>/span> امکانات زبان پرس و جو، به جز:
      • عملگر در سلسله مراتب;
      • نتایج را ارائه می دهد.
      • نتایج پرس و جو تو در تو نباید شامل قطعات جدولی باشد>/span>;
      • جداول مجازی، به ویژه مانده ها و گردش مالی

    تمرین 2. نامگذاری با قیمت فعلی.

    اگر نیاز دارید کالایی را با قیمت فعلی بیشتر از مقدار مشخصی مثلاً 100 نمایش دهید، محدودیت دسترسی ایجاد کنید.

    راه حل:

    یک قانون محدودیت دسترسی جدید برای کتاب مرجع «نام‌گذاری» برای حق «خواندن» اضافه می‌کنیم.
    "فیلدهای دیگر" را انتخاب کنید.
    در سازنده، یک کوئری تودرتو اضافه کنید. در آن، جدول ثبت اطلاعات "قیمت کالا" را انتخاب کنید.
    برگه "سفارش" وجود ندارد - این یکی از ویژگی های سازنده پرس و جو برای ایجاد یک پرس و جو محدودیت دسترسی است.
    در تب "پیشرفته"، "اول 999999999" را تنظیم کنید، تب "سفارش" ظاهر شده است.
    ترتیب را بر اساس قسمت "پریود" به ترتیب نزولی تنظیم کنید.
    سپس ارتباط جدول اصلی با زیرپرسوجو را با مرجع تنظیم می کنیم.


    الگوهای محدودیت دسترسی.

    تمرین 3. محدودیت در "پیمانکاران" بر اساس ارزش در یک ثابت.

    محدودیت دسترسی را برای دایرکتوری Counterparties با مقدار ذخیره شده در Constant تنظیم کنید.

    علاوه بر این، باید برای تمام اشیایی که از فهرست "پیمانکاران" در جزئیات استفاده می کنند، محدودیتی ایجاد کنید.

    راه حل

    برای کتاب مرجع «حساب‌ها»، برای سمت راست «خواندن»، با افزودن یک جستجوی تودرتو به ثابت در بخش «شرایط»، محدودیتی ایجاد می‌کنیم. ThisGroup را فراموش نکنید.

    ما مشکل را می بینیم، دایرکتوری Counterparties به درستی فیلتر شده است، و تمام اسناد با ویژگی "Counterparty" نمایش داده می شوند، برخی از آنها دارای پیوندهای "شکسته" در ویژگی "Counterparty" هستند.

    اکنون باید محدودیت دسترسی را برای همه اشیاء با استفاده از پیوند "Accounts" پیکربندی کنید. بیایید آنها را با سرویس "جستجوی پیوندهای یک شی" پیدا کنیم.

    بیایید متن شرط RLS را از دایرکتوری "Counterparties" کپی کرده و کمی تغییر دهیم. این کار باید به تعداد دفعات یافتن اشیاء انجام شود.

    یا از الگوی محدودیت دسترسی برای جلوگیری از مشکلات تکراری کد استفاده کنید.

    الگوهای محدودیت دسترسی در سطح نقش پیکربندی می‌شوند و می‌توانند برای هر شیئی در نقش ویرایش شده استفاده شوند.

    شما می توانید هر قطعه از متن محدودیت دسترسی را در قالب قرار دهید. این الگو از طریق نماد "#" فراخوانی می شود. برای مثال #TemplateContractor.

    از طریق # در 1C، دستورالعمل ها برای پیش پردازنده نوشته می شود. در زمینه اجرای تنظیمات محدودیت دسترسی، پلتفرم متن تماس الگو را با متن الگو جایگزین می‌کند.

    بیایید متن را بعد از کلمه WHERE به الگوی "TemplateContractor" منتقل کنیم، به جز متن مربوط به ThisGroup.

    پارامترها در قالب های محدودیت دسترسی

    بیایید به حل مشکل 2 ادامه دهیم.

    مشکل اکنون این است که جدول اصلی در فهرست "طرف مقابل"، در سند "فاکتور" نامیده می شود. فیلد بررسی شده در دایرکتوری "پیوند" نامیده می شود، در سند - "Counterparty".

    نام جدول اصلی در متن الگو را به "#CurrentTable" تغییر دهید.

    "#CurrentTable" یک پارامتر از پیش تعریف شده است.

    و از طریق نقطه، تعداد پارامتر ورودی را نشان می دهیم - “.#Parameter(1)

    "#Parameter" نیز یک مقدار از پیش تعریف شده است. ممکن است شامل تعداد دلخواه پارامترهای ورودی باشد. با شماره سریال به آنها اشاره می شود.

    در متن محدودیت دسترسی برای دایرکتوری موارد زیر را مشخص می کنیم:

    برای سند زیر:

    “فروش کالا WHERE #TemplateContractor(”پیمانکار”)”

    هنگام فراخوانی الگوی محدودیت دسترسی، پارامترها باید فقط به عنوان یک رشته، یعنی در گیومه به آن منتقل شوند.

    جدول اصلی - نامگذاری

    متن قالب این است:

    #CurrentTable WHERE #CurrentTable.#Parameter(1) = #Parameter(2)

    متن الگو شامل بخشی از متن در زبان محدودیت دسترسی به داده است و ممکن است حاوی پارامترهایی باشد که با نماد "#" برجسته شده اند.

    کاراکتر "#" ممکن است به دنبال آن باشد:

    • یکی از کلمات کلیدی:
      • پارامتری که به دنبال آن تعداد پارامتر در قالب داخل پرانتز قرار دارد.
      • CurrentTable - به معنای درج نام کامل جدولی است که محدودیت برای آن ایجاد شده است.
      • CurrentTableName- نشان دهنده درج در متن نام کامل جدول (به عنوان یک مقدار رشته، در علامت نقل قول) است که دستورالعمل به آن اعمال می شود، در نسخه فعلی زبان داخلی؛
      • NameCurrentPermission- حاوی نام حقی است که محدودیت فعلی برای آن انجام شده است: READ/READ، ADD/INSERT، ModIFY/UPDATE، DELETE/DELETE.
    • نام پارامتر الگو - به معنای درج محدودیت پارامتر الگوی مربوطه در متن است.
    • نماد "#" - نشان دهنده درج یک نماد واحد "#" در متن است.

    یک عبارت محدودیت دسترسی می تواند شامل موارد زیر باشد:

    • الگوی محدودیت دسترسی که در قالب مشخص شده است #TemplateName("مقدار پارامتر الگو 1"، "مقدار پارامتر الگو 2"،...). هر پارامتر الگو در دو گیومه محصور شده است. اگر نیاز به تعیین یک کاراکتر نقل قول دوگانه در متن پارامتر دارید، از دو گیومه استفاده کنید.
    • Function StrContains (جایی که به دنبال آن هستیم، آنچه ما به دنبال آن هستیم). این تابع برای جستجوی رخداد WhatLooking for در رشته WhereLooking برای جستجو طراحی شده است. اگر مطابقت پیدا شود، درست است، در غیر این صورت نادرست است.
    • عملگر + برای الحاق رشته ها.

    برای سهولت در ویرایش متن الگو، در تب Restriction templates در فرم نقش، دکمه Set template text را کلیک کنید. در گفتگوی باز شده، متن الگو را وارد کرده و روی OK کلیک کنید.

    آنها را نمی توان با استفاده از نصب کرد setParameter()یا چیزی مشابه

    در این حالت پارامترها عبارتند از:

    • گزینه های جلسه
    • گزینه های عملکردی

    خواندن پارامترهای جلسه در یک درخواست محدودیت دسترسی در حالت ممتاز رخ می دهد، یعنی بدون کنترل حقوق کار با آنها.

    تمرین 4. دسترسی به طرف مقابل "شما".

    لازم است محدودیت دسترسی کاربر فعلی به طرف مقابل "خود" ایجاد شود.

    دایرکتوری «کاربران»، دایرکتوری «طرفداران»، اسنادی با «طرف مقابل» وجود دارد.

    کاربر فعلی باید داده ها را فقط برای طرف مقابلی ببیند که برای آنها ارتباط برقرار شده است.

    ارتباطات نیز باید پیکربندی شود.

    گزینه های ممکن:

    ایجاد پیوندهای کاربر + طرف مقابل

    • جزئیات در دایرکتوری طرف مقابل
    • ثبت اطلاعات

    راه حل های ممکن برای مشکل:

    • ذخیره کاربر در یک ثابت گزینه بدی است، ثابت برای همه کاربران در دسترس است.
    • نگه داشتن یک آرایه ثابت از طرف مقابل کاربر فعلی در پارامترهای جلسه گزینه خوبی نیست، ممکن است طرف مقابل زیادی وجود داشته باشد.
    • در پارامترهای جلسه کاربر فعلی ذخیره کنید، سپس درخواست دریافت لیستی از طرف مقابل "او" را بدهید - یک گزینه قابل قبول.
    • گزینه های دیگر

    راه حل.

    بیایید یک پارامتر جلسه جدید "CurrentUser" ایجاد کنیم و پر کردن آن را در ماژول جلسه بنویسیم.

    بیایید یک ثبت اطلاعات "مکاتبات مدیران و طرفین" ایجاد کنیم

    بیایید یک نقش جدید و در آن یک محدودیت دسترسی جدید برای سند "فاکتور رسید" ایجاد کنیم.

    در متن پرس و جو، جدول اصلی را با ثبت اطلاعات توسط Contractor = Contractor و Manager = &CurrentUser متصل می کنیم. نوع اتصال داخلی

    در صورت امکان، بهتر است از پرس و جوهای تو در تو در متون محدودیت دسترسی خودداری کنید، زیرا هر بار که داده های این شی از پایگاه داده خوانده می شود، اجرا می شود.

    ما بررسی می کنیم - محدودیت ها کار می کنند

    * ویژگی: اگر لیست طرف مقابل کاربر را در ثبت تغییر دهید، محدودیت های دسترسی بلافاصله بدون راه اندازی مجدد جلسه کاربر اعمال می شود.

    تمرین 5. بدون تغییر تاریخ.

    لازم است محدودیت ویرایش داده ها زودتر از تاریخ تعیین شده برای ممنوعیت تغییرات اعمال شود.
    کاربران باید محدود باشند.

    بیایید یک ثبت اطلاعات "ChangeBarDateDate" با بعد کاربر، منبع RestrictedDate ایجاد کنیم.

    بیایید منطق راه حل را به این صورت بسازیم:

    • اگر کاربر مشخص نشده باشد، ممنوعیت برای همه کاربران اعمال می شود
    • اگر برای همه کاربران محدودیت و برای یک کاربر خاص محدودیت وجود داشته باشد، برای یک کاربر خاص محدودیت وجود دارد و برای بقیه طبق اصل کلی.

    بدیهی است که چنین محدودیتی را می توان برای اشیاء پایگاه داده ای که موقعیت خاصی در محور زمان دارند، پیکربندی کرد. میتونه باشه

    • مستندات
    • ثبت اطلاعات دوره ای

    بیایید یک نقش جدید "RestrictionsBy ChangeProhibitionDate" ایجاد کنیم.

    در آن، برای سند "فاکتور رسید" برای "تغییر" مناسب، یک محدودیت دسترسی جدید اضافه می کنیم.

    تنظیمات برای همه فیلدها مشخص شده است.

    متن محدودیت این است:

    رسید فاکتور از سند دریافت فاکتور به عنوان فاکتور فاکتور

    ChangeProhibitionDates.ProhibitionDate AS ProhibitionDate
    از جانب

    پیوستن داخلی (انتخاب کنید
    MAXIMUM(ChangeProhibitionDate.User) به عنوان کاربر
    از جانب
    ثبت اطلاعات تاریخ های ممنوعیت تغییرات به عنوان تاریخ ممنوعیت تغییرات
    جایی که
    (ChangeProhibitionDates.User = &CurrentUser
    ORChangeProhibitionDate.User = VALUE(Reference.users.NullReference))) AS OT_User
    BYChangeProhibitedDate.User = OT_User.User) AS Subquery
    Invoice Invoice.Date > NestedRequest.BanDate

    ما بررسی می کنیم - محدودیت کار می کند.

    استفاده از دستورالعمل های پیش پردازنده

    #اگر شرط 1 #پس

    درخواست قطعه 1

    #ElseIf Condition2 #سپس

    درخواست قطعه 2

    #در غیر این صورت

    درخواست قطعه 3

    #EndIf

    در شرایط، می توانید از عملیات منطقی (و. یا، نه، و غیره) و دسترسی به پارامترهای جلسه استفاده کنید.

    این رویکرد در زمینه محدودیت‌های دسترسی ساختمان راحت است، زیرا بسته به شرایط، متن پرس و جو کوتاه‌تری کامپایل می‌شود. یک درخواست ساده تر سیستم را کمتر بارگذاری می کند.

    نکته منفی این است که سازنده پرس و جو با چنین متنی کار نمی کند.

    *خصوصیات عجیب و غریب :

    برخلاف دستورالعمل‌های پیش‌پردازنده 1C: Enterprise در متون محدودیت دسترسی، قبل از عملگر Then با علامت هش قرار دهید - #Then

    تمرین 6. «استفاده از RLS» را تغییر دهید

    بیایید سیستم محدودیت خود را با یک سوئیچ تکمیل کنیم که استفاده از محدودیت را در سطح رکورد فعال/غیرفعال می کند.

    برای انجام این کار، یک Constant و یک پارامتر جلسه به نام "UseRLS" اضافه کنید.

    بیایید در Session Module مقدار پارامتر session را از مقدار ثابت بنویسیم.

    کد زیر را به تمام متون محدودیت دسترسی اضافه کنید:

    "#If &UseRLS #Then….. #EndIf"

    ما بررسی می کنیم - همه چیز کار می کند.

    با این حال، اکنون پس از روشن کردن پرچم "استفاده از رادار"، تغییرات بلافاصله اعمال نمی شوند. چرا؟

    زیرا پارامتر جلسه با شروع جلسه تنظیم می شود.

    هنگامی که یک مقدار ثابت جدید نوشته می شود، می توان پارامتر جلسه را بازنشانی کرد، اما این فقط برای جلسه کاربر فعلی کار می کند. باید از سایر کاربران خواسته شود که سیستم را مجددا راه اندازی کنند.


    پایان قسمت اول.