Dee*_*pti 4 sql sql-server sql-server-2012
任何人都可以分享从SQL Server 2012中的表中隐藏特定列的步骤,因为我不想删除该列
通过隐藏我的意思是,每当我对该特定表使用select查询时,它都不应该向我显示该列.
可能吗?无论用户登录和使用何种查询,我都需要将列隐藏起来
根据评论But the problem is whenever i open the table in sql i dont want to see that particular column我假设问题是:
下面的屏幕截图显示了Employee表的所有列,尽管登录StackoverIntern没有对列的选择权限SSN, Salary
后期但我觉得值得分享
早些时候,SQLSERVER-2016没有任何选择隐藏表几列时selecting *,却SQLSERVER-2016拿出HIDDEN关键字由您现在可以设置隐藏的列从Select *您不希望显示的只希望为您的企业的一些后台进程逻辑.
该隐藏的属性是可选的,并会隐藏一个标准的SELECT语句,这些列与我们的应用和查询的向后兼容性.您无法将HIDDEN属性应用于现有列
.
你可以改变现有的表,让我们举一个现有的表的例子
ALTER TABLE [dbo].[Account] ALTER COLUMN [StartDate] ADD HIDDEN;
ALTER TABLE [dbo].[Account] ALTER COLUMN [EndDate] ADD HIDDEN;
Run Code Online (Sandbox Code Playgroud)
您可以查看更常用的概念 Temporal table
你可以在下面的Temporal Table中找到更多相关信息
您可以使用列级别权限,以便目标用户无法在该列上进行选择。SELECT *但是,在执行 a或的情况下,这不会“隐藏”该列SELECT SpecialColumn。相反,它会使查询失败,从而导致错误。
为了更轻松地进行查询,您可以创建一个不包含此列的视图:
create view MyTableEx As
SELECT Every, Other, Column
FROM MyTable
Run Code Online (Sandbox Code Playgroud)
然后,仅向某些用户授予对视图(而不是表)的 SELECT 权限。然而,这对于应用程序来说仍然是个问题,它现在必须知道是否应该从表或视图中进行选择。
归根结底,列级权限在数据库中是一种不自然的事情。
| 归档时间: |
|
| 查看次数: |
14485 次 |
| 最近记录: |