使用 PowerShell 加密 SQL Server 的存储过程
2012-08-16 20:40
375 查看
出于安全的考虑,我们使用 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."
}
}
}
}
执行时请耐心,这取决于你的存储过程的数量。
首先我们打开 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."
}
}
}
}
执行时请耐心,这取决于你的存储过程的数量。
相关文章推荐
- 使用 PowerShell 加密 SQL Server 的存储过程
- 如何查看SQL Server 2005使用with encryption 加密的存储过程或触发器,函数
- Sql Server 存储过程中查询数据无法使用 Union(All)
- SQL Server的通用分页存储过程 未使用游标,速度更快!
- 【转载】破解SQL Server加密的存储过程的方法(含 sql 2000与sql 2005版)
- SQL Server学习:存储过程中Cursor(游标)的使用
- sql server中破解加密的存储过程 视图 等object的方法
- 使用C#创建SQL Server的存储过程(1)
- 破解SQL Server加密的存储过程的方法(含 sql 2000与sql 2005版)
- SQL Server的通用分页存储过程 未使用游标,速度更快!
- sql server 存储过程中使用变量表,临时表的分析
- 在SQL SERVER中实现Split功能的函数,并在存储过程中使用
- ASP在使用SQL SERVER存储过程中的问题
- [翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
- sql server 2005/2008 加密存储过程解密脚本/软件推荐
- SQL Server两种分页的存储过程使用介绍
- sql server 存储过程中使用事务
- [翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
- 使用C#创建SQL Server的存储过程
- 使用VSS 6与SQL Server 2000集成存储过程版本控制的设置