我们可以使用Encription隐藏视图语句,例如
CREATE VIEW TestTable
WITH ENCRYPTION
AS
SELECT *
FROM employees
这样,我们无法从“脚本视图为->创建至”中找到用于创建视图的脚本。 除了加密外,在创建视图表时是否可以直接删除视图语句?
例如,创建视图表后,人们可以通过选择“脚本视图为->创建为”来找到如何创建视图的脚本。我的意思是我们可以使用Encryption隐藏数据库代码,但是如何直接删除视图语句的那些数据库代码。并且select * from TestTable
不应该受到影响。
答案 0 :(得分:1)
似乎您需要撤销视图DEFINITION,您可以尝试如下操作
USE your_database;
REVOKE VIEW DEFINITION FROM user_name CASCADE;
GO
答案 1 :(得分:1)
您不能从DBA / SA / DBO中隐藏定义,但可以授予权限以限制访问。
答案 2 :(得分:1)
您无法按照
的方法在SQL Server上创建加密视图的脚本。因此,构成View的SELECT查询的代码是安全的
当然,还有用于decrypt encrypted views SQL Server上源代码的第三方工具。
因此,实际上,没有一种方法可以明确地读取SSMS上加密对象的源代码
顺便说一句,“ DROP VIEW viewname”将仅删除目标SQL对象 没有命令可以在一条语句中删除所有视图,例如“删除视图”等。