oracle中實現某個使用者truncate 其它使用者下的表

來源:互聯網
上載者:User

標籤:一個   登入   sql   情況下   rop   cat   cut   media   te pro   

oracle文檔中對truncate許可權的要求是需要某表在當前登入的使用者下,或者當前登入的使用者有drop any table的許可權。

但是如果不滿足第一個條件的情況下,要讓某使用者滿足第二個條件就導致許可權過大了。

參考網上的討論,可以使用預存程序來時間。

例如有兩個使用者 u1,u2,u1下有表 test1a

現在想要實現u2能 truncate u1下的表 test1a。

可以使用使用者u1建立預存程序,

create procedure u1.stgtruncate(table_name in varchar2) as
begin
  execute immediate ‘truncate table ‘||table_name;
end;

然後將該預存程序的許可權賦予u2,

grant execute on u1.stgtruncate to u2;

 

現在登入u2,通過執行如下sql即可truncate u1下的表test1a

call u1.stgtruncate(‘test1a‘);

 

以上。

oracle中實現某個使用者truncate 其它使用者下的表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.