1
我有一個包含用戶數據(電子郵件,姓名,用戶名,密碼..)的表格,我想授予每個用戶僅查看他自己的數據(如查看他的個人資料)。我一直試圖做這種方式:格蘭特選擇強迫表WHERE
create or replace
PROCEDURE PR_OWNDATA AS
BEGIN
FOR userRow IN (SELECT COD_USUARIO, USERNAME FROM CAMP.USERS) LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON CAMP.USERS TO "' || userRow.USERNAME || '" WHERE COD_USUARIO = ' || userRow.COD_USUARIO || ';';
END LOOP;
END PR_OWNDATA;
它不工作(ORA 06550 「行%S,列%S:\ n%S」)。但我看不出哪裏出了問題..
我想用這種方式
CREATE VIEW userRow.USERNAME.V_DATOSALUMNO AS SELECT * FROM CAMP.USERS WHERE COD_USUARIO = ' || userRow.COD_USUARIO || ';';
大約爲每個用戶創建一個視圖,但我不知道這是否是正確的方法..
預先感謝您。
您可能想要搜索'Oracle row-level security'。 – Mat