我可以在 oracle 中另一個模式中的索引上運行 DBMS_STATS.gather_index_stats 嗎?
當我在另一個模式中的索引上運行 gather_index_stats 時,它顯示錯誤“缺少權限”。那么,Oracle 中是否提供此功能?如果是,我該如何實作?還是我必須提供任何特權?
謝謝
uj5u.com熱心網友回復:
默認情況下,你不能對其他用戶的物件做任何事情——你需要有權限才能這樣做。
我不是 DBA,也沒有任何資料庫來說明“解決方案”,所以 - 除非有人更好地解釋它 - 看看這是否有幫助。
為了能夠處理其他人的物件,特權用戶 - 例如 SYS(或任何其他具有 DBA 特權的用戶) - 應該授予您一項ANY特權(例如alter any table)。“任何”的意思是“由任何人擁有”,這也意味著您不能被授予特權來僅為您正在談論的“另一個”用戶收集統計資訊,而是為資料庫中的“任何用戶”收集統計資訊。
系統權限非常強大 - 三思而后行是否應該將它們授予任何人。
我認為(因為我自己無法測驗它,也沒有在檔案中找到它)你需要的特權是ANALYZE ANY.
特權用戶 (SYS) 應該
grant analyze any to you;連接為
you,然后你會例如exec dbms_stats.gather_index_stats('SCOTT', 'PK_EMP');(
SCOTT代表您正在談論的“其他用戶”)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/434222.html
上一篇:我可以在OracleView中進行復雜的匯總或求和嗎?
下一篇:oracle減去上一行
