簡體   English   中英

如何在Oracle上獲得此數據權限配置?

[英]How to get this data permission configuration on Oracle?

我正在編寫一個應用程序,我想知道是否有可能在數據庫端(Oracle)而不是應用程序端獲得此數據權限配置。

它基本上與某些表有關,這些表必須存儲歷史數據,這些數據在鍵入后的第二天就無法編輯...

表格:X

領域:

  • 什么作為varchar2
  • MyDate作為DateTime

對於每一行,如果(當前日期= MyDate),則允許編輯。 否則,不會。

可以嗎? 我是否需要使用Oracle Label Security?

我正在尋找可以作為訪問權限(授予/撤消...)進行管理的內容,用法是管理員可以為用戶或角色創建,授予或撤消這種許可。

謝謝。

行級觸發器應該可以解決問題。

create or replace trigger my_trigger
  before update on my_table
  for each row
begin
   -- Only compare the date part  (trunc removes the time)
   if trunc(:old.mydate)!=trunc(sysdate)
   then raise_application_error(-20000,'Updates only allowed on the day of entry');
   end if;
end;

當然,午夜之前添加的條目的編輯時間很短。 另外,您應該以某種方式禁用更新mydate字段的可能性。 觸發器中的一些額外的行將解決這一問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM