當前位置:首頁 » 服務存儲 » sql存儲過程加密
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql存儲過程加密

發布時間: 2022-02-17 10:58:32

❶ MSsql中遇到存儲過程加密如何破解

exec 所創建的用於解密的存儲過程(你找的代碼) 要解密的存儲過程

就ok楽

❷ 存儲過程解密,sql server 2008 r2 一些存儲過程被加密了,誰有解密工具

1.
sql
server
2008新功能
一、可信任的
sql
server
2008為關鍵任務應用程序提供了強大的安全特性、可靠性和可擴展性。
·
通過簡單的數據加密、外鍵管理、增強審查來增強來擴展它的安全性。
·
通過改進了資料庫鏡像、熱添加cpu簡化管理並具高可靠性的應用的能力。
·
提供了一個廣泛的功能集合,使你的數據平台上的所有工作負載的執行都是可擴展的和可預測的。
二、高效的
sql
server
2008降低了管理系統、.net架構和visual
studio®
team
system的時間和成本,使得開發人員可以開發強大的下一代資料庫應
用程序。
·
sql
server
2008推出了陳述式管理架構(dmf)
,它是一個用於sql
server資料庫引擎的新的基於策略的管理框架。
·
對sql
server的服務生命周期提供了顯著的改進
,它重新設計了安裝、建立和配置架構。
·
提供了集成的開發環境和更高級的數據提取。
·
在與visual
studio
的合作下,快速的創建偶爾連接系統。
·
提供了新的數據類型使得開發人員和管理員可以有效的存儲和管理非結構化數據。
三、智能的
商業智能(bi)繼續作為大多數公司投資的關鍵領域和對於公司所有層面的用戶來說的一個無價的信息源。sql
server
2008提供了一個全面的平台,用於當用戶需要時你可以為其提供智能化。
·
集成任何數據
·
發送相應的報表
·
使用戶獲得全面的洞察力
sql
server
2008基於sql
server
2005強大的olap能力,為所有用戶提供了更快的查詢速度。這個性能的提升使得公司可以執行具有許多維度和聚合的非常復雜的分析。
2隨著sql
server
2008越來越多地進入到大家的視線中,也有越來越多的聲音說sql
server
2008
(kaitmai)僅僅是sql
server
2005的一個補丁包。當初我也是這個想法,因為我們把太多的目光放到了例如geo-spatial支持、hierarchical
id、file
stream上,確實這些功能都是建立在sql
server
2005搭建的clr
-integrated平台上的,但是我們也需要看到sql
server
2008中的其他功能,例如resource
governor、declarative
management
framework、change
data
capture、reporting
service
iis
agnostic
report
deployment等等。steveb在美國launch中更將policy-base
management列在sql
server
2008
top
10新功能的首位,還有美國launch上關於activity
monitor的改進、object
search以及t-sql
debugger被用戶愛稱為三項surprise
features。當然還是會有人說這些都是在dmv和ddl
triggers的技術基礎或技術路線上發展起來的,不過哪個產品不是從一條技術路線或某項基礎性改革上發展起來的呢?
因此微軟把sql
server
6.0/6.5稱為第一代資料庫產品,sql
server
7.0/2000稱為第二代資料庫,而sql
server
2005/2008稱為第三代資料庫產品。以此類推,那麼sql
server
vnext是不是會變成第四代資料庫產品呢,那又會有什麼革命性的改變呢?grid?...哦,跑題了
因此我們還是應該寬容地看待sql
server
2008,還是應該升級到sql
server
2008的,升級有問題可以咨詢emc
msp么.
3.完整的sql
2008企業版有2g吧

❸ sql存儲過程怎麼加密

語句後面加個WITH ENCRYPTION就好了,比如:

CREATEPROCEDUREdbo.AAA(
@AVARCHAR(60),
@BVARCHAR(200)OUTPUT)
WITHENCRYPTION
AS
BEGIN
--此處代碼省略100行
END

❹ SQLServer查找哪些存儲過程是已經加密的

--判斷存儲過程是否加密
select *
from sys.objects SP
left join sys.sql_moles AS smsp ON smsp.object_id = sp.object_id
where sp.type ='P'
and smsp.definition IS NULL --加密時內容為NULL
order by 1

❺ SQLSERVER存儲過程加密後,是不是任意版本都可以很容易解密

是的到目前為止,SQL Server所有版本的存儲過程的加密的機理都是一樣的,都可以被非常容易的破解,前提是,有讀取存儲過程的代碼的權。
要防止用戶得到SQL Server存儲過程的真實代碼,最簡單的做法就是只給執行權,不給查看權。
至於安裝在別人伺服器上的SQL Server資料庫中的存儲過程,想不讓別人看,那基本上是沒門兒的。

❻ sqlserver 2008存儲過程 加密 為什麼加密

觸發器的概念及作用 觸發器是一種特殊類型的存儲過程,它不同於我們前面介紹過的存儲過程。觸發器主要是通過事件進行觸發而被執行的,而存儲過程可以通過存儲過程名字而被直接調用。當對某一表進行諸如UPDATE、 INSERT、 DELETE 這些操作時,SQL Server 就會自動執行觸發器所定義的SQL 語句,從而確保對數據的處理必須符合由這些SQL 語句所定義的規則。 觸發器的主要作用就是其能夠實現由主鍵和外鍵所不能保證的復雜的參照完整性和數據的一致性。除此之外,觸發器還有其它許多不同的功能: (1) 強化約束(Enforce restriction) 觸發器能夠實現比CHECK 語句更為復雜的約束。 (2) 跟蹤變化Auditing changes 觸發器可以偵測資料庫內的操作,從而不允許資料庫中未經許可的指定更新和變化。 (3) 級聯運行(Cascaded operation)。 觸發器可以偵測資料庫內的操作,並自動地級聯影響整個資料庫的各項內容。例如,某個表上的觸發器中包含有對另外一個表的數據操作(如刪除,更新,插入)而該操作又導致該表上觸發器被觸發。 (4) 存儲過程的調用(Stored procere invocation)。 為了響應資料庫更新觸,發器可以調用一個或多個存儲過程,甚至可以通過外部過程的調用而在DBMS( 資料庫管理系統)本身之外進行操作。 由此可見,觸發器可以解決高級形式的業務規則或復雜行為限制以及實現定製記錄等一些方面的問題。例如,觸發器能夠找出某一表在數據修改前後狀態發生的差異,並根據這種差異執行一定的處理。此外一個表的同一類型(INSERT、 UPDATE、 DELETE)的多個觸發器能夠對同一種數據操作採取多種不同的處理。 總體而言,觸發器性能通常比較低。當運行觸發器時,系統處理的大部分時間花費在參照其它表的這一處理上,因為這些表既不在內存中也不在資料庫設備上,而刪除表和插入表總是位於內存中。可見觸發器所參照的其它表的位置決定了操作要花費的時間長短。 觸發器的種類 SQL Server 2000 支持兩種類型的觸發器:AFTER 觸發器和INSTEAD OF 觸發器。其中AFTER 觸發器即為SQL Server 2000 版本以前所介紹的觸發器。該類型觸發器要求只有執行某一操作(INSERT UPDATE DELETE) 之後,觸發器才被觸發,且只能在表上定義。可以為針對表的同一操作定義多個觸發器。對於AFTER 觸發器,可以定義哪一個觸發器被最先觸發,哪一個被最後觸發,通常使用系統過程sp_settriggerorder 來完成此任務。 INSTEAD OF 觸發器表示並不執行其所定義的操作(INSERT、 UPDATE、 DELETE),而僅是執行觸發器本身。既可在表上定義INSTEAD OF 觸發器,也可以在視圖上定義INSTEAD OF 觸發器,但對同一操作只能定義一個INSTEAD OF 觸發器。 請參考

❼ 求破解sql200加密存儲過程的具體方法

破解SQL SERVER 加密存儲過程,函數,觸發器,視圖
create PROCEDURE sp_decrypt(@objectName varchar(50))
AS
begin
set nocount on
--破解位元組不受限制,適用於SQLSERVER2000存儲過程,函數,視圖,觸發器
begin tran
declare @objectname1 varchar(100),@orgvarbin varbinary(8000)
declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000)
DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare @i int,@status int,@type varchar(10),@parentid int
declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int
select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@ObjectName)

create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)
insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectName)
select @number=max(number) from #temp
set @k=0

while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
if @type=\'P\'
set @sql1=(case when @number>1 then \'ALTER PROCEDURE \'+ @objectName +\';\'+rtrim(@k)+\' WITH ENCRYPTION AS \'
else \'ALTER PROCEDURE \'+ @objectName+\' WITH ENCRYPTION AS \'
end)

if @type=\'TR\'
set @sql1=\'ALTER TRIGGER \'+@objectname+\' ON \'+OBJECT_NAME(@parentid)+\' WITH ENCRYPTION FOR INSERT AS PRINT 1 \'

if @type=\'FN\' or @type=\'TF\' or @type=\'IF\'
set @sql1=(case @type when \'TF\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end \'
when \'FN\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns char(1) with encryption as begin return @a end\'
when \'IF\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns table with encryption as return select @a as a\'
end)

if @type=\'V\'
set @sql1=\'ALTER VIEW \'+@objectname+\' WITH ENCRYPTION AS SELECT 1 as f\'

set @q=len(@sql1)
set @sql1=@sql1+REPLICATE(\'-\',4000-@q)
select @sql2=REPLICATE(\'-\',8000)
set @sql3=\'exec(@sql1\'
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=CEILING(1.0*(@colid-1)/2) and len(@sQL3)<=3996
begin
set @sql3=@sql3+\'+@\'
set @n=@n+1
end
set @sql3=@sql3+\')\'
exec sp_executesql @sql3,N\'@Sql1 nvarchar(4000),@ varchar(8000)\',@sql1=@sql1,@=@sql2

end
set @k=@k+1
end

set @k=0
while @k<=@number
begin

if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
select @colid=max(colid) from #temp where number=@k
set @n=1

while @n<=@colid
begin
select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k

SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n and number=@k)
if @n=1
begin
if @type=\'P\'
SET @OrigSpText2=(case when @number>1 then \'CREATE PROCEDURE \'+ @objectName +\';\'+rtrim(@k)+\' WITH ENCRYPTION AS \'
else \'CREATE PROCEDURE \'+ @objectName +\' WITH ENCRYPTION AS \'
end)

if @type=\'FN\' or @type=\'TF\' or @type=\'IF\'--剛才有錯改一下
SET @OrigSpText2=(case @type when \'TF\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end \'
when \'FN\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns char(1) with encryption as begin return @a end\'
when \'IF\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns table with encryption as return select @a as a\'
end)

if @type=\'TR\'
set @OrigSpText2=\'CREATE TRIGGER \'+@objectname+\' ON \'+OBJECT_NAME(@parentid)+\' WITH ENCRYPTION FOR INSERT AS PRINT 1 \'

if @type=\'V\'
set @OrigSpText2=\'CREATE VIEW \'+@objectname+\' WITH ENCRYPTION AS SELECT 1 as f\'

set @q=4000-len(@OrigSpText2)
set @OrigSpText2=@OrigSpText2+REPLICATE(\'-\',@q)
end
else
begin
SET @OrigSpText2=REPLICATE(\'-\', 4000)
end
SET @i=1

SET @resultsp = replicate(N\'A\', (datalength(@OrigSpText1) / 2))

WHILE @i<=datalength(@OrigSpText1)/2
BEGIN

SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
(UNICODE(substring(@OrigSpText2, @i, 1)) ^
UNICODE(substring(@OrigSpText3, @i, 1)))))
SET @i=@i+1
END
set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))
set @resultsp=(case when @encrypted=1
then @resultsp
else convert(nvarchar(4000),case when @status&2=2 then uncompress(@orgvarbin) else @orgvarbin end)
end)
print @resultsp

set @n=@n+1

end

end
set @k=@k+1
end

drop table #temp
rollback tran
end

❽ 資料庫中怎樣創建加密的存儲過程

可以例用Oracle 自帶的Wrap工具實現,此工具在$ORACLE_HOME/BIN目錄下,具體如下
1、設置字元集環境變數
set NLS_LANG=CHINESE_CHINA.ZHS16GBK

2、創建一個存儲過程文件
在E:\下創建test.sql文件,內容如下:
create or replace procere test1(i in number) as
begin
dbms_output.put_line(' 輸入參數是'||to_char(i));
end;
3、加密
c:\> cd %ORACLE_HOME%\BIN
c:\>wrap iname=e:\test1.sql
PL/SQL Wrapper: Release 8.1.7.0.0 - Proction on Tue Nov 27 22:26:48 2001
Copyright (c) Oracle Corporation 1993, 2000.All Rights Reserved.
Processing test1.sql to test1.plb

4、運行test1.plb
sqlplus /nolog
SQL>conn TEST/TEST@db01
SQL> @e:\a.plb
過程已創建。

5、運行存儲過程
SQL> set serveroutput on
SQL> execute test1(1);
輸入參數是1
PL/SQL 過程已成功完成。

6、查看存儲過程的代碼
SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';

結果:看不到其原碼

❾ 怎麼破解sqlserver加密的存儲過程

在另外一台電腦上裝資料庫,然後將加密所在存儲的資料庫恢復上去即可。

❿ SQL2000把存儲過程加密了,怎麼解開

SQL2000把存儲過程加密了,怎麼解開
可以導入,太大,就不要用記事本或者其它編輯器打開了,
查詢分析器--連接資料庫--文件--打開--.sql文件--F5執行

不過你把數據導出為SQL文件,而且200多M,真的是。

為何不壓縮後,直接拷庫文件,或者直接備份導出呢。