我在Azure中创建了一个数据同步过程,以便Azure在Datasync
模式的SQL Server数据库中创建了几个表。我想隐藏位于Datasync
架构中的那些表。
你们可以建议如何避免在Azure中显示这些表,或者如何从我的SQL Server中隐藏表?
答案 0 :(得分:4)
SQL Server中没有HIDE
功能,您可以拒绝对您不希望查看架构上的表或对象的某些用户组用户的该表的权限
您可以使用DENY
关键字拒绝某些用户,REVOKE
删除现有权限
答案 1 :(得分:1)
这个问题有点老了,但是今天我正在寻找类似的东西,以便可以隐藏数据库中已完成设计的表,或者将它们放置在某个文件夹中,以免干扰数据库,从而组织数据库中的表。我目前正在处理的表(并使我感到困惑:P)。
我发现这篇文章讨论了Hiding tables in SSMS Object Explorer
使用扩展属性,OP能够从视图中隐藏表。 您可以在文章本身中阅读更多详细信息,但是出于这个答案的目的,我在这里重现OP的代码
隐藏表“ Person.Address”
EXEC sp_addextendedproperty
@name = N'microsoft_database_tools_support',
@value = 'Hide',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address';
GO
显示表格“ Person.Address”
EXEC sp_dropextendedproperty
@name = N'microsoft_database_tools_support',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address';
GO
我刚刚在我的一张桌子dbo.Users.Logins
中使用了它,因为我曾经使用过
@level0name='dbo'
和
@level1name='Users.Logins'
执行命令后,我刷新了表列表,刷新花了大约45秒钟(不确定是否正常),但是刷新后指定的表名不在表列表中 >
删除扩展属性后,表的名称又回来了。
即使隐藏,该表也可以正常工作(SELECT, INSERT, UPDATE, DELETE
和JOINS
)
我正在使用SQL Server Management Studio v18.4(©2019)
HTH。