我正在處理遠程數據庫,我只有權限訪問特定的表。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'並不是一個好主意 –