加密视图

加密视图所必须做的工作是使用 with encryption 选项。如果你熟悉 whit check option 那要注意这里的技巧

  • with encryption 在视图的名称之后,但在as关键字之前
  • with encryption 不在使用option关键字

除此之外,如果使用alter view 那么就意味着解除了访问权限,完全替换了现用的视图。这就意味着加密方法也被替换了。如果想对海边的视图加密,那么必须在alter view 语句中使用with encryption 子句。

例子:创建视图

use Test 
go
create  view  testview
with encryption
as
select * from  Activity..Activity

现在对视图执行

exec sp_helptext testview

SQL Server 很快的说明 它不能完成所要求的工作

对象 'testview' 的文本已加密。

你想知道原因 于是查看sys.sql_modules元数据函数

select * from 
sys.sql_modules
where  object_id=object_id('dbo.testview')

但是也没有提供太多信息——SQLServer认识到表是加密的,返回返回的是一个null值。简言之一您的代码是安全和可靠的。
注意:

        确保在使用with encryption 选项之前,已经确保存储了源代码,一旦代码被加密了,就没有办法恢复。如果没有在其他地方存储代码,又需要改代码,那就需要重新写了。

posted on 2014-12-04 15:05  黎木  阅读(446)  评论(0编辑  收藏  举报

导航