SQL Server-如何在数据库中创建视图后删除视图语句

时间:2018-09-21 05:19:57

标签: sql sql-server

我们可以使用Encription隐藏视图语句,例如

CREATE VIEW TestTable
WITH ENCRYPTION
AS
SELECT *
FROM employees

这样,我们无法从“脚本视图为->创建至”中找到用于创建视图的脚本。 除了加密外,在创建视图表时是否可以直接删除视图语句?

例如,创建视图表后,人们可以通过选择“脚本视图为->创建为”来找到如何创建视图的脚本。我的意思是我们可以使用Encryption隐藏数据库代码,但是如何直接删除视图语句的那些数据库代码。并且select * from TestTable不应该受到影响。

3 个答案:

答案 0 :(得分:1)

似乎您需要撤销视图DEFINITION,您可以尝试如下操作

USE your_database;  
REVOKE VIEW DEFINITION FROM user_name CASCADE;  
GO  

答案 1 :(得分:1)

您不能从DBA / SA / DBO中隐藏定义,但可以授予权限以限制访问。

答案 2 :(得分:1)

您无法按照

的方法在SQL Server上创建加密视图的脚本。

enter image description here

因此,构成View的SELECT查询的代码是安全的

当然,还有用于decrypt encrypted views SQL Server上源代码的第三方工具。

因此,实际上,没有一种方法可以明确地读取SSMS上加密对象的源代码

顺便说一句,“ DROP VIEW viewname”将仅删除目标SQL对象 没有命令可以在一条语句中删除所有视图,例如“删除视图”等。