使用PowerShell sql server加密所有现有的存储过程

时间:2014-06-12 11:32:14

标签: sql-server-2008 powershell stored-procedures encryption sql-server-2008-r2

我想加密现有数据库中的所有存储过程 所以我尝试使用shell脚本

$db = (new-Object Microsoft.SqlServer.Management.Smo.Server("SQL_instance")).Databases.Item("[DB_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."
}

     }
  }
}

它正在我的一个本地服务器上运行,但不在客户端的服务器上运行 Source for this

我收到以下错误 Error

1 个答案:

答案 0 :(得分:0)

你的脚本对我来说很好 - 所以我怀疑你可能需要在管理员模式下运行powershell或提升它的权限..