مخفی کردن ( ENCRYPTION) گروهی روال های بانک اطلاعاتی (STORED PROCEDURE) چگونه؟؟
سلام دوستان ، وقتتان بخیر
در حالت عادی با دستور زیر می توانیم بصورت تکی یک روالی را که ایجاد یا ویرایش کردیم را به اصطلاح مخفی یا ENCRYPTION کنیم :
CREATE/ALTER PROCEDURE Example
WITH ENCRYPTION
AS
// Code
BEGIN
END
حال انجام یه همچین کاری برای چندین روال که قبلاً ساخته شده چگونه باید اقدام کرد یعنی انجام مخفی سازی به صورت گروهی ؟؟
نقل قول: مخفی کردن ( ENCRYPTION) گروهی روال های بانک اطلاعاتی (STORED PROCEDURE) چگونه؟؟
روی دیتابیست کلیک راست رو بزن و Start PowerShell رو انتخاب کن دستور زیر رو اونجا وارد کن
$db = (new-Object Microsoft.SqlServer.Management.Smo.Server("Server Name")).Databases.Item("DataBase Name")
Foreach ($sp in $db.StoredProcedures){
if(!$sp.IsSystemObject){
if (!$sp.IsEncrypted){
$sp.TextMode = $false;
$sp.IsEncrypted = $true;
$sp.TextMode = $true;
try{
$sp.Alter();
}catch{
Write-Host "$sp.Name fail to encrypted."
}
}
}
}
فقط قسمت نام سرور و نام دیتابیس رو اصلاح کن
منبع : CodeProject
نقل قول: مخفی کردن ( ENCRYPTION) گروهی روال های بانک اطلاعاتی (STORED PROCEDURE) چگونه؟؟
دوست عزیز ممنون از پاسختون اما من در محیط خود sql می خواهم این کد شما فکر کنم مربوط به ویژوال استودیو باشه ؟!
نقل قول: مخفی کردن ( ENCRYPTION) گروهی روال های بانک اطلاعاتی (STORED PROCEDURE) چگونه؟؟
نقل قول:
نوشته شده توسط
AHTahan
روی دیتابیست کلیک راست رو بزن و Start PowerShell رو انتخاب کن دستور زیر رو اونجا وارد کن
$db = (new-Object Microsoft.SqlServer.Management.Smo.Server("Server Name")).Databases.Item("DataBase Name")
Foreach ($sp in $db.StoredProcedures){
if(!$sp.IsSystemObject){
if (!$sp.IsEncrypted){
$sp.TextMode = $false;
$sp.IsEncrypted = $true;
$sp.TextMode = $true;
try{
$sp.Alter();
}catch{
Write-Host "$sp.Name fail to encrypted."
}
}
}
}
فقط قسمت نام سرور و نام دیتابیس رو اصلاح کن
منبع : CodeProject
این کار چطور برای ویوها انجام میشه؟
میشه لطف کنید دستورات مربوط به انکریپت کردن ویوها هم بذارید