سلام دوستان یه سری پراسیجرهای پیچیده ای دارم که برای یک شرکت نوشته شده و در دیتابیس اون ها قرار داده شده. اما نمیخوام اسکریپت هایی که نوشتم رو کسی بتونه ببینه و دسترسی داشته باشه. آیا راهی هست که بشه با ایجاد امنیت و رمزنگاری کردن Stored Procedure در Sql Server دسترسی به اسکریپت ها رو محدود کرد ؟
بله شما میتونید با استفاده از دستور With Encryption در Sql Server کدهای خودتون رو قفل گذاری کنید و به عبارتی مخفی کنید.
خب برای اینکه بدونید دقیقا چجوری باید اسکریپت های خودتون رو رمزنگاری کنید یک مثال انجام میدیم. فرض کنید یک 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.
پس خیالتون راحت باشه که دیگه کدهای شما رو کسی نمیتونه دسترسی داشته باشه.
شما به راحتی میتونید با استفاده از دستور Alter و حذف دستور With Encryption پراسیجر رو به حالت معمولی برگردونید:
Alter PROCEDURE dbo.GetGroupById @id int
AS
SELECT * FROM dbo.GroupTbl
WHERE GRoupID = @id;
نکته : دقت کنید که اسکریپت هایی رو که قصد دارید به صورت انکریپت شده تبدیل کنید حتما پیش خودتون نگهداری کنید تا اگر نیاز بود در پراسیجر تغییری بدید (با استفاده از دستور Alter) به مشکل نخورید و فقط یک بار Alter رو اجرا کنید.
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1400/08/02
- ساعت :
02:35:00 PM
- بازدید :
2563
- پاسخ :
1
|
تاریخ :
1403/01/15
- ساعت :
04:12:00 PM
- بازدید :
798
- پاسخ :
2
|
تاریخ :
1402/10/18
- ساعت :
10:45:00 PM
- بازدید :
705
- پاسخ :
2
|
تاریخ :
1402/08/18
- ساعت :
08:43:00 AM
- بازدید :
1311
- پاسخ :
0
|
تاریخ :
1402/08/16
- ساعت :
09:45:00 PM
- بازدید :
1037
- پاسخ :
1
|
تاریخ :
1402/06/27
- ساعت :
12:27:00 PM
- بازدید :
1458
- پاسخ :
2
|
تاریخ :
1402/06/25
- ساعت :
11:37:00 AM
- بازدید :
1041
- پاسخ :
1
|
تاریخ :
1402/06/18
- ساعت :
10:36:00 AM
- بازدید :
1751
- پاسخ :
2
|
تاریخ :
1399/06/01
- ساعت :
10:58:00 PM
- بازدید :
7552
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
54
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
93
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1347
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
595
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|