PDA

View Full Version : مخفی کردن ( ENCRYPTION) گروهی روال های بانک اطلاعاتی (STORED PROCEDURE) چگونه؟؟



hamid-nic
سه شنبه 10 مرداد 1391, 23:02 عصر
سلام دوستان ، وقتتان بخیر
در حالت عادی با دستور زیر می توانیم بصورت تکی یک روالی را که ایجاد یا ویرایش کردیم را به اصطلاح مخفی یا ENCRYPTION کنیم :


CREATE/ALTER PROCEDURE Example
WITH ENCRYPTION
AS
// Code
BEGIN
END

حال انجام یه همچین کاری برای چندین روال که قبلاً ساخته شده چگونه باید اقدام کرد یعنی انجام مخفی سازی به صورت گروهی ؟؟

AHTahan
یک شنبه 05 شهریور 1391, 13:25 عصر
روی دیتابیست کلیک راست رو بزن و 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

hamid-nic
دوشنبه 06 شهریور 1391, 00:19 صبح
دوست عزیز ممنون از پاسختون اما من در محیط خود sql می خواهم این کد شما فکر کنم مربوط به ویژوال استودیو باشه ؟!

S_VB.max
دوشنبه 08 آبان 1391, 17:52 عصر
روی دیتابیست کلیک راست رو بزن و 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

این کار چطور برای ویوها انجام میشه؟
میشه لطف کنید دستورات مربوط به انکریپت کردن ویوها هم بذارید