2

I am synchronizing tables using a stored PL/SQL procedure as part of a web application - when they hit a button it does the sync. The PL/SQL is executing as user A, but needs to disable indexes and sync a couple of tables in schema B. I can't get user A to 'alter index B.indexName unusable' despite granting it 'alter any index', and in desperation even DBA. The error is ORA-01418: specified index does not exist. This is working on another developer's sandbox but I can't figure out why. Any suggestions will be appreciated.

4

3 回答 3

1

Are you granting the ALTER ANY INDEX privilege via a role? Or is the privilege being granted directly to user A?

Privileges granted through a role (such as DBA) are not available to definer's rights stored procedures (the default). Only privileges that are granted directly to the user are available in a definer's rights stored procedure.

于 2008-10-30T18:11:09.513 回答
0

我删除了索引并重建了它,这似乎已经解决了上面的问题。现在它让我禁用索引,但告诉我用户没有足够的权限来更改索引...当我完成填充表时在线重建。如果您愿意的话,用户 A 需要什么权限来执行该操作?

于 2008-10-30T19:05:04.630 回答
0

索引是否存在?不止一次,我因为不接受错误信息而浪费了时间。

于 2008-10-30T18:11:26.937 回答