行级别安全性 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

行级别安全性

使用 Amazon Redshift 中的行级别安全性 (RLS),您可以对敏感数据进行精细访问控制。您可以根据在数据库对象级别定义的安全策略,来决定哪些用户或角色可以访问架构或表中数据的特定记录。除了列级别安全性(您可以向用户授予对列的子集的权限)之外,还可使用 RLS 策略进一步限制对可见列中特定行的访问。有关列级别安全性的更多信息,请参阅 列级访问控制的使用说明

在对表强制实施 RLS 策略时,您可以限制用户运行查询时返回的结果集。

在创建 RLS 策略时,您可以指定表达式,规定 Amazon Redshift 是否在查询中返回表中的任何现有行。通过创建 RLS 策略来限制访问,您不必在查询中添加或外部化其他条件。

在创建 RLS 策略时,我们建议您创建简单策略,并且避免在策略中使用复杂语句。在定义 RLS 策略时,不要在基于策略的策略定义中使用过多表联接。

当某个策略引用某个查找表时,Amazon Redshift 除了扫描该策略所在的表以外,还会扫描其他表。对于附加了 RLS 策略的用户和未附加任何策略的用户,同一查询之间将存在性能差异。

为每个用户组合多个策略

Amazon Redshift 中的 RLS 支持为每个用户和对象附加多个策略,前提是所有附加的策略都具有相同的表别名。当为一个用户定义了多个策略时,Amazon Redshift 会使用 AND 语法应用所有策略。一个表上的多个策略可以与您关联。将多个策略直接附加到您,或是您属于多个角色,并且这些角色附加了不同策略。