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

SQL Server-在数据库中创建视图后如何删除视图语句,sql,sql-server,Sql,Sql Server,我们可以使用Encription隐藏view语句,如 CREATE VIEW TestTable WITH ENCRYPTION AS SELECT * FROM employees 这样,我们就无法从“脚本视图为->创建到”中找到用于创建视图的脚本。 除了加密之外,在创建视图表时是否有任何方法可以直接删除view语句 例如,在创建视图表后,用户可以通过选择“脚本视图为->创建为”来查找视图创建方式的脚本。我的意思是我们可以使用加密来隐藏数据库代码,但是如何直接删除那些视图语句的数据库代码呢。

我们可以使用Encription隐藏view语句,如

CREATE VIEW TestTable
WITH ENCRYPTION
AS
SELECT *
FROM employees
这样,我们就无法从“脚本视图为->创建到”中找到用于创建视图的脚本。 除了加密之外,在创建视图表时是否有任何方法可以直接删除view语句


例如,在创建视图表后,用户可以通过选择“脚本视图为->创建为”来查找视图创建方式的脚本。我的意思是我们可以使用加密来隐藏数据库代码,但是如何直接删除那些视图语句的数据库代码呢。并且不应影响
select*fromtesttable

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

USE your_database;  
REVOKE VIEW DEFINITION FROM user_name CASCADE;  
GO  

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

USE your_database;  
REVOKE VIEW DEFINITION FROM user_name CASCADE;  
GO  

您不能对DBA/SA/DBO隐藏定义,但可以设置权限来限制访问。

您不能对DBA/SA/DBO隐藏定义,但可以设置权限来限制访问。

您不能按照

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

当然,也有第三方工具用于在SQL Server上编写源代码

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

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

您不能按照以下方式在SQL Server上创建加密视图的脚本:

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

当然,也有第三方工具用于在SQL Server上编写源代码

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

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

要删除视图,请使用
删除视图“在创建视图表时是否有办法直接删除视图语句?”完成此操作后,是否仍希望视图可用?因为我认为你误解了什么是观点。它不是一个表,它是一个基于底层数据的动态数据集。也许你可以解释一下你在这里想要实现什么。我不建议你费心加密。它很容易恢复,您不能完全隐藏数据库代码。请注意,视图的加密只是模糊处理。当然,您可以创建一个表来具体化查询结果,而不是使用视图,但数据将是静态的,并且在创建后不会反映对源数据的更改“在创建视图表时是否有办法直接删除视图语句?”完成此操作后,是否仍希望视图可用?因为我认为你误解了什么是观点。它不是一个表,它是一个基于底层数据的动态数据集。也许你可以解释一下你在这里想要实现什么。我不建议你费心加密。它很容易恢复,您不能完全隐藏数据库代码。请注意,视图的加密只是模糊处理。当然,您可以创建一个表来具体化查询结果,而不是使用视图,但数据将是静态的,不会反映创建后对源数据的更改。这将删除所有视图,如何删除用于创建视图表的view语句并保留视图以供选择?@user3651247是否要删除并重新创建?不清楚你的期望是什么。你能再清楚一点吗?我的意思是从创建中删除视图语句。因此ppl无法从“脚本视图为->创建到”中找到视图的脚本。有什么办法吗?您建议的方法是删除所有视图表。@user3651247“这将删除所有视图”-不,在这种情况下,它将只删除一个视图,
TestTable
。@user3651247我想您想要撤销在数据库上创建视图的权限吗?这将删除所有视图,如何删除用于创建视图表的view语句并保留视图以供选择?@user3651247是否要删除并重新创建?不清楚你的期望是什么。你能再清楚一点吗?我的意思是从创建中删除视图语句。因此ppl无法从“脚本视图为->创建到”中找到视图的脚本。有什么办法吗?您建议的方法是删除所有视图表。@user3651247“这将删除所有视图”-不,在这种情况下,它将只删除一个视图,
TestTable
。@user3651247我想您想要撤销在数据库上创建视图的权限,对吗?