我正在处理远程数据库,我只有权限访问特定的表。PostgreSQL查询在没有权限的情况下使用表格
相关数据的形式为:
CREATE TABLE t_a(v_a VARCHAR(32), v_b VARCHAR(32));
CREATE TABLE t_b(v_b VARCHAR(32), v_c VARCHAR(32));
INSERT INTO t_a VALUES ('one', 'abc1');
INSERT INTO t_a VALUES ('two', 'abc2');
INSERT INTO t_a VALUES ('three', 'abc3');
INSERT INTO t_b VALUES ('abc1', 'eins');
INSERT INTO t_b VALUES ('abc2', 'zwei');
INSERT INTO t_b VALUES ('abc3', 'drei');
我的查询是这样的:
SELECT DISTINCT ON (v_a) v_a, v_c FROM t_a, t_b WHERE t_a.v_b = t_b=v_b;
现在实际的问题:我可以以某种方式得到同样的信息未经允许t_b
阅读?我可以尝试另一种方法吗?
编辑
可悲的是,我没有更改权限的权利。我的思路是,因为我只想要在v_a
和v_c
之间建立关联,所以我可以不用从t_b
中选择任何列。经过一番思考后,我可以看到为什么这不应该被许可系统允许 - 毕竟,我试图从t_b
读取一些信息。
我也希望可能有不同的权限层,其中一个允许非选择查询。
您的意思是即使您没有对其的读取权限,也希望在查询中包含t_b?什么样的数据库系统可以做到这一点? – harmic
您是否在'PUBLIC'或某个用户/角色的表上授予'GRANT'访问权限?如果不是,那么只有业主可以访问它。 –
不相关,但:使用'distinct on'而未指定'order by'并不是一个好主意 –