加密视图
加密视图所必须做的工作是使用 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 选项之前,已经确保存储了源代码,一旦代码被加密了,就没有办法恢复。如果没有在其他地方存储代码,又需要改代码,那就需要重新写了。