ویژگی Visibility Levels در Enterprise Architect امکان محدود کردن دسترسی به بخشهای خاصی از یک مدل را فراهم میکند. فقط مدل هایی که توسط یک Pro Cloud Server میزبانی می شوند می توانند از این ویژگی استفاده کنند. Visibility Levels با بهره گیری از ویژگی Row Level Security موجود در Oracle 8+ و Microsoft SQL Server 2016 (به بعد) پیاده سازی می شود.
در این آموزش از بانک اطلاعاتی SQL Server به منظور راه اندازی ویژگی Visibility Levels استفاده می شود، با استناد به تجربه کسب شده در راه اندازی این ویژگی، بانک اطلاعاتی SQL Server گزینه مناسب تری نسبت به اوراکل می باشد.
برای استفاده از این ویژگی ابتدا باید یک دیتابیس جدید به همراه جداول مورد نیاز نرم افزار EA را ایجاد کنید، و مدل خود را از دیتابیس قدیمی به دیتابیس جدید با ویژگی Visibility Levels انتقال دهید.
نرم افزار SQL Server Management Studio Management Studio را باز کرده روی Databases کلیک راست کنید و گزینه New Database را انتخاب کنید.
در پنجره باز شده در کادر Database Name یک نام (به عنوان مثال EA) برای دیتابیس خود وارد کنید و روی OK کلیک کنید.
از منوی بالا نرم افزار Microsoft SQL Server Management Studio گزینه New Query را انتخاب کنید و در کادر کشویی بالای نرم افزار پایگاه داده ای که ساخته اید را انتخاب کنید.
اسکریپت ساخت جدوال EA را از سایت Sparx System دانلود کنید.
برای اجرای اسکریپت فایل دانلود شده را با یک نرم افزار ویرایشگر متن مثل(Notpad یا Notpad ++) باز کنید و کد را در پنجره اجرای Query قرار دهید و از منوی بالای نرم افزار روی Execute کلیک کنید.
پس از اجرای دستورات بررسی کنید که دستورات به درستی اجرا شده باشند.
پس از اجرا اسکریپت پایگاه داده را چک کنید و مطمئن شوید که جداول در آن ساخته شده باشند.
برای انجام این کار از منوی سمت چپ نرم افزار (Object Explorer) روی علامت + کنار نام پایگاه داده کلیک کنید و سپس روی علامت + کنار Table کلیک کنید تا جداول به شما نمایش داده شوند.
📷
یک پنجره جدید برای اجرای Query باز کنید و اسکریپت مربوط به Visibility Levels را از مسیر نصب نرم افزار طبق آدرس زیر دریافت کنید.
C:\Program Files\Sparx Systems\Pro Cloud Server\VisibilityLevels
نام اسکریپت: EASchema_VL_Updates_SQLServer
توجه: در این مسیر اسکریپت بروزرسانی و حذف مربوط به پایگاه داده اوراکل و SQL Server قرار دارند.
اسکریپت را در پنجره Query قرار دهید و مطابق راهنمای بالای اسکریپت تغییرات لازم را در اسکریپت اعمال کنید و آن را با زدن Execute اجرا کنید.
توجه: در SQL Server کافیست به جای عبارت {SCHEMA} مالک پایگاه داده را قرار دهید (به طور پیش فرض مالک پایگاه داده SQL Server عبارت dbo است که می توانید آن را قبل از اسم جداول پایگاه داده مشاهده کنید).
پس از اجرای دستورات بررسی کنید که دستورات به درستی اجرا شده باشند(خطایی در اجرای اسکریپت وجود نداشته باشد).
برای ساخت نام کاربری جدید از منوی Object Explorer علامت + کنار Security را باز کنید و روی login کلیک راست کنید و روی New Login کلیک کنید.
در پنجره باز شده در کادر Login Name یک نام کاربری (به طور مثال EAUSER01) و گزینه SQL Server authentication را انتخاب کنید، در کادر Password و Confirm Password یک کلمه عبور مناسب وارد کنید و تیک Enforce password expiration را بردارید و OK را کلیک کنید.
روی نام کاربری ساخته شده کلیک راست کنید و روی Properties کلیک کنید.
در پنجره باز شده روی User Mapping کلیک کنید و پایگاه داده ای که در بند 1 ساخته اید (EA) را انتخاب کنید و نقش های db_datareader و db_datawriter انتخاب کنید. همچنین در همین بخش می توانید مشخص کنید که نام کاربری به چه سطوحی از Row Level Security دسترسی داشته باشد. به طور مثال می توانید مشخص کنید این یوزر به گروه های ea_visibilitylevel1 و ea_visibilitylevel2 و ea_visibilitylevel3 دسترسی داشته باشد، و در آخر روی OK کلیک کنید.
برای تعیین دسترسی هر پکیج باید از یک رشته اتصال جدید در نرم افزار Pro Cloud Server ایجاد کنید و پس از ورود به نرم افزار EA روی Package Control کلیک کنید و گزینه Set Visibility Level را کلیک کنید.
در پنجره باز شده مشخص کنید که چه گروهی اجازه دیدن این پکیج را دارد.
برای اجرا شدن Row Level Security کافی است رشته های اتصال EA را با یوزر های ساخته شده به دیتابیس متصل کنید.