下面代码演示如何使用 PowerShell 脚本将 SQL Server 中的所有存储过程加密。出于安全的考虑,我们使用 WITH ENCRYPTION 在创建存储过程的时候进行加密,但如果我们想要更新已加密的存储过程该如何做呢?我看到一些人写了一个 C# 控制台程序,受此提示,我使用了 PowerShell 调用 "Microsoft.SqlServer.Management.Smo" 来实现。首先我们打开 PowerShell,你需要确定的是你的 SQL Server 版本是否支持 PowerShell,我这里用的是 SQL Server 2008.打开 "Microsoft SQL Server Management Studio" -> open "Object Explorer"-> <你要处理数据库名> ,然后右键打开 "Start PowerShell", 将会弹出 PowerShell 提示窗口。修改代码如下所示:$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("[DataBase Engine Name]")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.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."
}
}
}
}执行时请耐心,这取决于你的存储过程的数量。英文原文,OSCHINA原创翻译使用MongoDB开发实践体会ORA-32004 的错误处理相关资讯 SQL Server
- Build2016喜讯:Linux用户注册微软 (03月17日)
- SQL Server on Linux 理由浅析 (03月09日)
- 管理SQL Server服务的登录(启动) (02月13日)
| - 微软要抢甲骨文用户?从Oracle迁移 (03月13日)
- 微软发布面向Linux的SQL Server预 (03月08日)
- SQL Server如何修改自增列值以及相 (01月23日)
|
本文评论 查看全部评论 (0)