问题标签 [rls]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2668 浏览

visual-studio-code - VSCode/Atom 问题中的完整 Rust 设置

这是一个很长的帖子,对不起。

我一直在尝试使用 Rust 启动一个项目,但遇到了一个问题:它在 VSCode/Atom 的 Linux 上无法正常工作。

浪费了 3 天,在线搜索,尝试不同的教程/视频 - 没有任何效果 + 大部分材料来自 2017 年。我尝试过 Matrix 聊天,但没有人知道该怎么做。Git 也没有解决方案,因为人们一直在建议非常随机的事情,例如“将 toml 文件中的这个变量更改为其他内容,然后再返回”

Git:https ://github.com/rust-lang/rls-vscode/issues/513

我安装了(并在过去 3 天内多次重新安装了 rust),它在终端上运行良好,但在编辑器中却不行。


两个问题:

  1. 编辑器看不到任何 crate,因此您无法从编辑器运行代码。
  2. 自动完成不起作用(仅适用于标准,不适用于您添加的额外箱子)。

我做了什么(出于许多其他事情):

  1. 安装 Rust(在 Manjaro 和 Debian 计算机上):curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

试过stable, beta, nightly(for racer) 刚刚再次进行了全新安装:

stable installed - rustc 1.40.0 (73528e339 2019-12-16)

Rust is installed now. Great!

  1. Rust (rls) rust-lang.rust在 VSCode 中安装了扩展(并在 Atom 中生锈)

  2. 创建了一个新项目:cargo new test_projrand = "0.6"在 [dependencies] 中添加了新项目并使用了 cargo build。它确实建立了rand

  3. 添加"rust-client.enableMultiProjectSetup": true到设置文件以避免警告:A Cargo.toml file must be at the root of the workspace in order to support all features. Alternatively set rust-client.enableMultiProjectSetup=true in settings.由 Rust (rls)

  4. 我还安装了与 Python、C++ 和 Java 一起使用的“代码运行器”扩展,以在编辑器中运行代码。


所以现在我只有主函数,它在编辑器中运行得很好:

在此处输入图像描述

在此处输入图像描述


现在我添加了 rand ,它似乎可以工作,并且会自动完成一些......

在此处输入图像描述

在此处输入图像描述


但现在它停止工作:

在此处输入图像描述


好的,我将完成代码并尝试运行它,现在我们不能再运行它了,因为 crate 丢失了:

在此处输入图像描述


好的,让我们试试 Ctrl + Shift + B 并尝试 cargo build:

在此处输入图像描述

在此处输入图像描述

出于某种奇怪的原因,它正在查看 /media/Work/Work/rust_code 而不是 /media/Work/Work/rust_code/test_proj/


最后一件事:让我们尝试在终端中运行:

在此处输入图像描述

所以它确实工作得很好。

很抱歉发了这么长的帖子,但我现在已经浪费了 3 天,但它仍然无法启动和运行。有没有人设法设置这个?

它必须是 Atom 或 VSCode,因为我在那里设置了所有其他语言/项目 + VSCode 列在 Rust 官方网站上,所以我认为它应该可以工作。

基本上,在两个具有调试功能的编辑器(VSCode 和 Atom)中,与 Intellij Rust 不同,它们都不适合我,而且我无法在 Rust 中编码,因为工具已经损坏/不够成熟,无法用于生产性工作。如果我错了,请告诉我,这只是一个小标志的情况,每个人都忘记提及,在某些配置中丢失。

0 投票
1 回答
555 浏览

postgresql - 针对特定用户的 PostgreSQL RLS 策略未按预期工作并适用于所有用户

我的数据库中有 2 个用户,一个是“强”,一个是“弱”。我只想为其中一个弱用户应用 RLS 策略。这意味着,当强用户查询表时,它应该获取所有行。但是当弱用户查询该表时,将应用该策略并且它将仅返回允许的行。

我创建了一个表,并将 RLS 策略仅应用于弱用户。但即使在使用强用户进行查询时,也会执行该策略并阻止我获取所有行。我正在使用 PostgreSQL 版本 11.4。

这是我创建策略的方式(我已经与另一个第三个用户创建了策略,该用户是管理员和表的所有者)

现在,使用管理员用户插入和选择始终有效,因为它是所有者:

这里没问题,所有行都返回了。

尝试使用weak_user 登录并选择时,我没有按预期得到任何行:

如果我设置参数,则应用策略并按预期获取数据:

现在,当我使用 strong_user 登录并执行select * from account_test查询时,我希望返回所有行,因为策略仅适用于 weak_user。但是,我得到与 for 相同的行为,weak_user并且没有返回任何行。使用 set_config 的查询也不返回任何内容。

我错过了什么?

这是预期的行为吗?

有人可以解释吗?

0 投票
3 回答
927 浏览

postgresql - AWS RDS 上 PostgreSQL 中的行级安全性 (RLS) 不起作用

我目前正在尝试在 AWS RDS 上运行的 PostgreSQL 数据库上配置 RLS。出于某种原因,我无法让它在 AWS 的 Postgres DB 上工作,但在本地它可以工作,而且一切似乎都是相同的。

这是我的设置:

PostgreSQL 版本:10.6

脚步:

本地运行的 Postgres DB 上的相同步骤确实有效。在新表上启用并强制 RLS 后,用户不再看到表中的条目。只有在 AWS RDS 上运行的 Postgres 上它不起作用。

有什么我可能在这里遗漏的想法吗?

0 投票
1 回答
310 浏览

postgresql - 当启用行级安全性并且使用 NOT LEAKPROOF 运算符时,PostgreSQL 会忽略 pg_trgm GIN 索引

首先,这个 SO 问题描述了一个类似的问题:PostgreSQL query not using INDEX when RLS (Row Level Security) is enabled ,但我无法成功利用它的建议,也想看看是否有改进的方法Postgraphile 上下文中的事物。

复制步骤:

作为超级用户,创建一个简单的表并用一些随机数据填充它:

执行 ILIKE 查询(在本文中进一步称为“ILIKE 查询”,用于多次测试性能):

正如预期的那样,它执行 Seq Scan,执行时间约为 194.823 ms

安装 gp_trgm 扩展并添加一个 gin 索引:

由于表已经填充了数据,因此创建索引需要一些时间(约 10 秒)。现在,运行相同的 ILIKE 查询将使用“trgm_idx_videos_title 上的位图索引扫描”,执行时间为 0.036 毫秒。

到目前为止一切似乎都很好,但前提是您始终可以使用超级用户获取数据并且不为所述表实施额外的安全性。

让我们设置一个额外的用户并授予它连接到我们的数据库的访问权限(名为 gin_rls_test)

我们还需要为该用户之前创建的表授予 SELECT 权限。

为确保我们的用户能够以与目前相同的方式查询数据,请使用 db_login 连接到数据库服务器。(在 pgAdmin 中,您只需创建一个新服务器,指定一些不同的名称,相同的主机名,但使用 db_login/db_login_pwd 作为用户名和密码)

如果您使用新添加的 db_login 连接导航到我们的表,打开查询工具并执行相同的 ILIKE 查询 - 结果应该相同,将应用索引。

打破这一点的是 RLS(行级安全性)。让我们切换回超级用户的查询编辑器并为我们的表设置它:

为简单起见,public.user_has_permission() 函数只返回 true。(在我的情况下,它是一个 plpgsql 函数,它检查存储在 pg_catalog.current_setting 中的设置的权限,并且不执行任何额外的显式请求。)

现在,如果您从超级用户查询编辑器运行 ILIKE 查询,它仍然会像以前一样超级快,因为超级用户避免了 rls。如果从 db_login 查询编辑器运行它,将不再命中索引,将使用 Seq Scan,执行时间约为 1013.485 毫秒。

通读此线程(https://www.postgresql.org/message-id/CAGrP7a3PwDYJhPe53yE6pBPPNxk2Ve4n%2BdPQMS1HcBU6swXYfA%40mail.gmail.com)后,似乎问题发生了,因为 ILIKE 的底层功能不是防漏的。EXPLAIN ANALYZE 告诉我们我们使用操作符 ~~* 进行文本比较,运行这个查询会让你知道这个操作符的底层函数的名称:

实际上有 3 个结果,在我们的例子中,底层函数名称是“texticlike”。您可以做的是切换到超级用户查询编辑器并使该功能防泄漏:

现在,如果您再次从 db_login 查询编辑器运行 ILIKE 查询,索引将被命中并且执行时间将回到 0.040 毫秒。

问题:

也许使某些运算符显式防漏是可以接受的,但真正的问题(除了意外泄漏某些东西,例如如果抛出异常)是只有超级用户才能使函数防漏。如果您有 Azure 或 AWE 托管的数据库,您将没有超级用户访问权限,并且在尝试使函数防漏时会出现以下错误:

所以对我来说,关于如何使 GIN 索引适用于启用 RLS 的表上的 ILIKE 查询,这仍然是一个悬而未决的问题。或者,在仍然将该标题属性作为文本类型的同时实现相同性能结果的替代方法是什么?

我正在使用 Postgraphile,我对提高“includesInsensitive”和“startsWithInsensitive”过滤器的性能很感兴趣,ILIKE 运算符防漏也会影响这些过滤器。

附加信息:

如果您想将功能切换回不防漏:

我尝试使用此查询来查找所有可用的防漏运算符,但在其中没有找到任何可行的替代方案(最接近的是运算符 ^@ 的“starts_with”函数,它区分大小写):

使用 gp_trgm gin index 的最初想法来自这篇文章:https ://niallburkley.com/blog/index-columns-for-like-in-postgres/

PostgreSQL 版本(使用SELECT version();)-“x86_64-pc-linux-musl 上的 PostgreSQL 12.2,由 gcc (Alpine 9.2.0) 9.2.0, 64-bit 编译”

0 投票
0 回答
138 浏览

database - Azure SQL DB - 使用 O365 组的行级安全性

是否可以使用 Office 365 组在 Azure SQL 数据库中设置行级别安全性?

我的数据库中有一个任务表,其中包含“分配给”(assignedTo)列。这是一个 varchar(255) 存储电子邮件地址。它可以设置为员工电子邮件或 O365 组。根据该列中的文本,我想分配行级安全性。

我需要知道是否可以使用 O365 组分配 RLS?我只能找到与 Power BI 相关的帖子。

https://docs.microsoft.com/en-us/sql/relational-databases/security/row-level-security?view=sql-server-ver15

0 投票
0 回答
115 浏览

powerbi - PowerBI 服务中未应用行级安全性

首先,让我说我不是新手。我已经使用 Power BI 多年了。

这是我的问题:我生成了一份报告并在 power bi desktop 中创建了一个规则,并将其发布在 power bi 服务上。一切正常,除了一位用户。无论我对这个用户做什么,它都会一直看到所有数据,就像他在管理员组中一样,但他不是。我猜他从我在 Power BI 中看不到的更高级别继承了授权。

你知道调试这个的方法吗?为什么这个用户和同事具有相同的授权级别,正在查看所有数据?

非常感谢您帮助我解开这个谜团!

0 投票
1 回答
144 浏览

azure - Power BI RLS 与 Azure Active Directory B2B

我想尝试使用 AAD B2B 在本地和外部用户数据上处理我的 AD 组。但我不确定是否可以通过 Powerbi 数据源(分析服务)获取所有 AAD 数据,因为我想应用基于 AD 数据的角色级别安全性。因此,我想知道哪些 AD 数据(例如 CN、OU、UPN、SamAccountName...)也将存储在 AAD 中。谢谢你。

0 投票
2 回答
1009 浏览

database - Azure Synapse 与 Power BI 中的行级安全性 (RLS)

我正在为我的一个客户构建一个新的数据仓库系统,并将 Azure Synapse 与 Power BI 结合使用。我目前正在为系统布置访问框架,并探索在各个点应用 ROW LEVEL 安全性的优缺点。

我的理解是 Power BI 最适合导入,如果我在数据库上应用 RLS,我不确定 RLS 在 Power BI 中如何工作。

但是,如果我在 Power BI 中应用 RLS,报告团队将不得不在每个报告中处理它。此外,由于数据很敏感,我不想为报告团队提供全面的安全控制。

任何人都可以在这里提供帮助并建议应用 RLS 的正确方法吗?

0 投票
0 回答
1034 浏览

rust - 为 thumbv7m-none-eabi 构建时如何避免“E0463: can't find crate for `test` can't find crate”?

使用 ARM 目标处理项目时,RLS 给出以下错误消息:

E0463: can't find crate for test can't find crate

再生产:

我相信这是因为 ARM 目标没有测试箱。

有没有办法避免这个错误?

E0463 上还有其他几个 SO 帖子,但似乎是配置错误。以上纯粹是一个RLS问题。它导致我的编辑器显示错误并且代码不完整等。

0 投票
1 回答
903 浏览

powerbi - 如何在具有多个值的 Power BI 中创建单个 RLS 角色?

我正在尝试在 PBI 中扮演多个角色,但如果我选择的不仅仅是变量,我的规则将不起作用。例子

我没有收到任何错误消息,但是当我“查看为”时没有任何显示。有什么想法吗?如果我只做美国或加州,那么它工作正常。