ایجاد امنیت و رمزنگاری کردن Stored Procedure در Sql Server
سلام دوستان یه سری پراسیجرهای پیچیده ای دارم که برای یک شرکت نوشته شده و در دیتابیس اون ها قرار داده شده. اما نمیخوام اسکریپت هایی که نوشتم رو کسی بتونه ببینه و دسترسی داشته باشه. آیا راهی هست که بشه با ایجاد امنیت و رمزنگاری کردن Stored Procedure در Sql Server دسترسی به اسکریپت ها رو محدود کرد ؟
امنیت در Stored Procedure در Sql Server
بله شما میتونید با استفاده از دستور With Encryption در Sql Server کدهای خودتون رو قفل گذاری کنید و به عبارتی مخفی کنید.
آموزش استفاده از دستور With Encryption برای رمزنگاری اطلاعات
خب برای اینکه بدونید دقیقا چجوری باید اسکریپت های خودتون رو رمزنگاری کنید یک مثال انجام میدیم. فرض کنید یک Procedure خیلی ساده دارید. اسکریپت زیر این پراسیجر رو برای ما به وجود میاره :
CREATE PROCEDURE dbo.GetGroupById @id int
WITH ENCRYPTION
AS
SELECT * FROM dbo.GroupTbl
WHERE GRoupID = @id;
همون طوری که میبینید بعد از اینکه پارامتر ورودی Procedure تعریف شد و قبل از کلمه کلیدی As از عبارت With Encryption استفاده کردیم. خب حالا اگر این پراسیجر رو ایجاد کنیم مشاهده می کنیم که در لیست Procedure ها یک علامت قفل روی اون قرار گرفته.
می بینید که پراسیجر شما به وجود اومده و یک علامت قفل روش هست. حالا اگر روی نام این پراسیجر کلیک راست کنید مشاهده می کنید که گزینه Modify غیر فعال هست. یعنی دسترسی به اسکریپت وجود نداره.
اما یک نکته. ما برای اینکه بتونیم به کدهای یک پراسیجر دسترسی داشته باشیم علاوه بر اینکه می تونیم روی نام پراسیجر کلیک راست کنیم و گزینه Modify رو بزنیم می تونیم از دستور زیر هم استفاده کنیم :
EXEC sp_helptext 'GetGroupById';
اما با اجرای دستور بالا با پیغام زیر مواجه میشید:
The text for object 'GetGroupById' is encrypted.
پس خیالتون راحت باشه که دیگه کدهای شما رو کسی نمیتونه دسترسی داشته باشه.
حذف With Encryption از Stored Procedure
شما به راحتی میتونید با استفاده از دستور Alter و حذف دستور With Encryption پراسیجر رو به حالت معمولی برگردونید:
Alter PROCEDURE dbo.GetGroupById @id int
AS
SELECT * FROM dbo.GroupTbl
WHERE GRoupID = @id;
نکته : دقت کنید که اسکریپت هایی رو که قصد دارید به صورت انکریپت شده تبدیل کنید حتما پیش خودتون نگهداری کنید تا اگر نیاز بود در پراسیجر تغییری بدید (با استفاده از دستور Alter) به مشکل نخورید و فقط یک بار Alter رو اجرا کنید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- حذف کامل یک رکورد در جدول ریلیشن شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- تفاوت اوراکل و Sql Server چیست
- جابه جایی سطر و ستون در Sql Server
- استفاده از Stored Procedure در انتیتی فریم ورک code First
- آپدیت لیستی از رکوردها در Sql Server - آپدیت گروهی اطلاعات در Sql Server
- دلیل پرش 1000 تایی خودکار فیلد identity در Sql server
- مشکل نمایش ندادن Data Type موقع تایپ در Sql Server
- کار با تاریخ شمسی وساعت (استفاده از توابع )