我有SQL表稱爲Table 01
,它有3列作爲X
,Y
,Z
SQL查詢的限制只針對一個領域
我需要的SELECT SQL
查詢限制到什麼只返回時請求Z
列數據for X & Y
是否有限制SQL的方法SELECT query
?
我有SQL表稱爲Table 01
,它有3列作爲X
,Y
,Z
SQL查詢的限制只針對一個領域
我需要的SELECT SQL
查詢限制到什麼只返回時請求Z
列數據for X & Y
是否有限制SQL的方法SELECT query
?
如果限制對於z
SELECT X, Y
FROM
Table01
如果限制x的SELECT查詢SELECT查詢,Y
SELECT Z
FROM
Table01
不,我需要設置限制才能選擇Z,請求者不應該能夠得到SELECT *查詢結果 –
我已更新我的答案。它限制選擇Z和請求者無法看到這個列 –
如果這個查詢沒有解決你的問題。請提供一些演示表格數據和您接受的數據。 –
說你在架構USER1
一個表,並且要允許其他用戶,說USER2
,只查詢列z
;你可以在你的桌子上建立一個視圖,只給予視圖的授權,而不會在桌子上給予任何授權;通過這種方式USER2
將只能看到包含在視圖中的列,而不是整個表。
例如
USER1:
create table completeTable(x number, y number, z number);
create view restrictedTable as select z from completeTable;
insert into completeTable values (1, 2, 3);
grant select on restrictedTable to USER2;
create public synonym restrictedTable for restrictedTable;
USER2:
SQL> select x, y, z from completeTable;
select x, y, z from completeTable
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select x, y, z from restrictedTable;
select x, y, z from restrictedTable
*
ERROR at line 1:
ORA-00904: "Y": invalid identifier
SQL> select z from restrictedTable;
Z
----------
3
但我需要從X和Y的where子句得到結果(Z),我該怎麼做, 例如 從
我可以同時擁有MySQL或Oracle –
添加示例表數據和預期的結果 - 以及格式化文本。同時向我們展示您當前的查詢嘗試。 – jarlh
請編輯您的問題,添加一些樣本數據和所需的結果。另外,發佈你迄今爲止的嘗試以及你的代碼問題 – Aleksej