我已經在這裏讀取Permissions for truncating a table您需要向用戶授予ALTER權限,以便他們能夠截斷表。但是,我仍然遇到問題,用戶被授予此角色時會截斷表。截斷表的問題WITH ALTER權限
任何想法,這是爲什麼?
PS。我自己作爲桌子的主人可以順便截斷。沒有其他人擁有ALTER權限。
我已經在這裏讀取Permissions for truncating a table您需要向用戶授予ALTER權限,以便他們能夠截斷表。但是,我仍然遇到問題,用戶被授予此角色時會截斷表。截斷表的問題WITH ALTER權限
任何想法,這是爲什麼?
PS。我自己作爲桌子的主人可以順便截斷。沒有其他人擁有ALTER權限。
您所指的鏈接適用於MS SQL Server。 Leila評論中的鏈接也適用於SQL Server。
對於Oracle用戶must haveDROP ANY TABLE
系統特權。
這反過來可能不是你想要的,因爲這個系統特權太破壞了。
湯姆凱特has你的問題的解決方案:
當然,這是存儲過程的全部意義。
要選擇性地給別人的abilitly截斷特定的表, 或全部通過一些模型所擁有的表,你會編:
create or replace procedure do_the_truncate as begin execute immediate 'truncate table T'; end;
或(任何通過一些模型所擁有的表,或如果該模式有 降大任於表私法任何表)
create or replace procedure do_the_truncate(p_tname in varchar2) as begin execute immediate 'truncate table ' || p_tname; end;
,然後只授予對程序執行到需要 運行該命令的任何用戶。由於存儲過程與過程的所有者的基本權限 一起運行,因此不需要任何強大的權限,如 「drop any table」來截斷該表。
可以進一步提高do_the_truncate
存儲過程有允許表的列表被截斷,以加強安全在您的系統
你可以在這裏找到答案:https://dba.stackexchange.com /問題/ 52828 /什麼的權限,是-必要換截斷-A-表 – Leila