哪些数据库引擎允许我在特定列上授予/撤销?

TML*_*TML 6 database-recommendation permissions feature-comparison

如果我有一个包含一列敏感数据的表,并且我想在不公开该列的情况下广泛使用该表,我知道我可以创建一个 VIEW,让他们可以访问所有非敏感列。但是,PostgreSQL 允许您以以下形式授予列级权限

grant select (col1, ...coln) on table to role;
Run Code Online (Sandbox Code Playgroud)

是否有其他引擎提供此功能?

gar*_*rik 8

SQL Server 2000、2005、2008 具有此功能

GRANT { ALL [ PRIVILEGES ] }
       | permission [ ( column [ ,...n ] ) ] [ ,...n ]
       [ ON [ class :: ] securable ] TO principal [ ,...n ] 
       [ WITH GRANT OPTION ] [ AS principal ]
Run Code Online (Sandbox Code Playgroud)

添加

在 SQL Server 2005、2008 中,可以使用对称加密加密一列数据,请参阅包含身份验证器的 B.对称加密。此变体返回NULL 值,就像使用了错误的键一样


Pet*_*aut 5

这是 SQL 标准功能。“大多数” SQL 实现都支持它,包括 PostgreSQL、MySQL、Oracle、DB2、SQL Server。