笔记55 SQLSERVER加密存储过程

笔记55 SQLSERVER加密存储过程

 1 --SQLSERVER加密存储过程
 2 --注意:加密存储过程前应该备份原始存储过程,且加密应该在部署到生产环境前完成!!
 3 --存储过程的内容不会被轻易看到(虽然解密也是有可能的)。应用这个,我们可以对某些关键的存储过程进行加密。但此时,存储过程仍然能被execute、alter和drop。
 4 
 5 USE pratice
 6 go
 7 
 8 /**********测试表*****************/
 9 SET ANSI_PADDING ON
10 GO
11 CREATE TABLE [dbo].[encrypttb_demo](
12     [id] [int] NOT NULL,
13     [submitdate] [datetime] NULL,
14     [commment] [nvarchar](200) NULL,
15 )
16 GO
17 SET ANSI_PADDING OFF
18 GO
19 Insert into [encrypttb_demo]
20 select 1024, getdate(),REPLICATE('A',100);
21 WAITFOR DELAY '00:00:04';
22 Insert into [encrypttb_demo]
23 select 1024, getdate(),REPLICATE('B',50);
24 GO
25 
26 ----------------------------------------------------------------------
27 /***************创建未加密的存储过程*******************/
28 Create Procedure CPP_test_Original
29 AS
30 select * from [encrypttb_demo]
31 go
32 /***************创建加密的存储过程*******************/
33 Create Procedure CPP_test_Encryption
34 with encryption
35 AS
36 ----可以换成任意的逻辑
37 execute CPP_test_Original
38 GO
39 
40 
41 
42 ----------------------------------------------------
43 --赋予权限的例子
44 --创建一个账号TonyZhang,并赋于该账号对该存储过程的exec权限
45 USE master
46 GO
47 CREATE LOGIN TonyZhang WITH PASSWORD = '123456'
48 USE pratice
49 GO
50 CREATE USER TonyZhang
51 GO
52 GRANT EXEC ON dbo.[CPP_DEL_ALL_Tb_Demo] to TonyZhang

 

posted @ 2013-08-02 22:35  桦仔  阅读(1800)  评论(0编辑  收藏  举报