خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نحوه encrypt کردن Stored Procedure، View، Function در SQL Server

نحوه encrypt کردن Stored Procedure، View، Function در SQL Server
بنا به دلایل امنیتی یا شرایطی که درآن هستید، شاید نیاز دارید که همه stored procedure ها، viewها، user defined function ها را در SQL Server رمزگذاری یا encrypt کنید.

سیستم یکپارچۀ سازمانی راهکار
برای مخفی کردن کد stored procedure یا View و یا function از WITH ENCRYPTION در زمان ایجاد اسکریپت استفاده کرده تا encrypt آن stored procedure یا View و یا function ایجاد شده و از دید سایرین پنهان بماند. به منظور encrypt کردن stored procedure با روش encrypt کردن، روش چندان مطمئنی نیست چرا که امروزه در اینترنت ابزارهای بسیار زیادی هستند که این رمزگذاری را شکسته و کد در دسترس قرار می گیرد. از این روش برای رمزگذاری اطلاعات و کدهای محرمانه استفاده نکنید.


پس از رمزگذاری ، هیچ راه مستقیمی در SQL Server برای رمزگشایی این روش وجود ندارد. در دستور CREATE که برای ایجاد شیء مورد نظرتان استفاده می کنید، حتما قبل از Run کردن آن، encrypt را در کد لحاظ کنید.
اما چگونه اینکار انجام می شود؟ چگونه می توانیم در SQL Server همه یا بخشی از procedure ها، viewها، user defined function ها را Encrypt کنیم.

Encrypting Stored Procedure

برای encrypt کردن یک stored procedure، فقط کافیست که از WITH ENCRYPTION در CREATE PROCEDURE استفاده کنید. در ذیل مثالی از ایجاد stored procedure به همراه with encryption و دیگری بدون encryption می باشد.


CREATE PROCEDURE MTB_NoEncryption
AS
BEGIN
SELECT 'From MTB_NoEncryption'
END
GO

CREATE PROCEDURE MTB_WithEncryption WITH ENCRYPTION
AS
BEGIN
-- START: Properitary Business Logic
--
--
--
--
-- END: Properitary Business Logic

SELECT 'From ENCRYPTED Stored Procedure'
END
GO

اگر هر دو stored procedure را اجرا کنید، نتایجی مشابه با تصویر زیر را دریافت می کنید.

نحوه encrypt کردن Stored Procedure، View، Function در SQL Server . آموزشگاه رایگان خوش آموز

خب، حالا sp_helptext برای هر دو stored procedure اجرا کنید تا کدهای آنها را ببینید. با این روش هرگز نمی توانید کد stored procedure ای که Encrypt کرده اید را مشاهده کنید و به جای آن پیغام The text for object ‘MTB_WithEncryption’ is encrypted را دریافت خواهید کرد.

نحوه encrypt کردن Stored Procedure، View، Function در SQL Server
نحوه encrypt کردن Stored Procedure، View، Function در SQL Server
اگر درصدد باز کردن همین stored procedure رمزگذاری شده از طریق Object Explorer در SSMS باشید، باز هم با خطا مواجه خواهید شد.

نحوه encrypt کردن Stored Procedure، View، Function در SQL Server
نحوه encrypt کردن Stored Procedure، View، Function در SQL Server
در SQL Server Profiler یا دو Event، SP:StmtStarting و SP:StmtEnding به سراغ stored procedure ای که رمزگذاری کرده بودید بروید و خواهید دید که در خروجی - Encrypted text را دریافت خواهید کرد.

نحوه encrypt کردن Stored Procedure، View، Function در SQL Server

Encrypting Function (UDF)

خب، حالا به نحوه encrypt کردن Function در SQL Server خواهیم پرداخت. برای رمزگذاری function هم کافیست که گزینه WITH ENCRYPTION را همراه با CREATE FUNCTION در اسکریپت وارد کنید.
در ادامه دو Function که یکی بدون ENCRYPTION و دیگری با ENCRYPTION است را خواهید دید:

CREATE FUNCTION MTB_fnNoEncryption
(
@value varchar(50)
)
RETURNS varchar(50)
AS
BEGIN

RETURN @value + ' - From Regular Function'

END
GO

CREATE FUNCTION MTB_fnWithEncryption
(
@value varchar(50)
)
RETURNS varchar(50) WITH ENCRYPTION
AS
BEGIN
-- START: Properitary Business Logic
--
--
--
--
-- END: Properitary Business Logic
RETURN @value + ' - From ENCRYPTED Function'

END
GO

حالا با استفاده از sp_helptext، درصدد دیدن کدهای هر دو Function باشید. درست همانطور که در stored procedure ایکه رمزگذاری شده بود و دیدن کد آن مقدور نبود، در اینجا هم با همین شرایط مواجه خواهید شد.

نحوه encrypt کردن Stored Procedure، View، Function در SQL Server
نحوه encrypt کردن Stored Procedure، View، Function در SQL Server
از طریق object explorer در SSMS هم نمی توانید کد Function را مشاهده کنید.

Encrypting Views

مشابه رمزگذاری stored procedure ها و function ها، encrypt و رمزگذاری View ها هم به همین منوال خواهد بود.
فقط باید در اسکریپت CREATE VIEW از گزینه WITH ENCRYPTION استفاده کنید.

CREATE VIEW TestView WITH ENCRYPTION
AS
select * from Application.Countries
Go

Pros & Cons Of Using WITH ENCRYPTION

رمزگذاری با WITH ENCRYPTION مزایا و معایبی دارد.
این یکی از ساده ترین روش برای پنهان کردن کد از دید سایرین است.
ولی شکستن این رمزگذاری امری ساده است و با یک جستجوی ساده در اینترنت برنامه های زیادیکه اینکار را انجام می دهند را می توانید پیدا کنید.



نمایش دیدگاه ها (1 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز