Oracle11g 授予Oracle中特定索引的权限或其可见性

Oracle11g 授予Oracle中特定索引的权限或其可见性,oracle11g,database-indexes,lob,Oracle11g,Database Indexes,Lob,我有一个有点奇怪的问题要问:我是否可以在Oracle 11g中对特定用户隐藏特定索引,但让该用户从该索引的表中进行选择 分析如下:有一个表,其中一个字段为BLOB类型。Oracle在该列上为该表创建了内部索引: SELECT index_name, index_type, uniqueness, temporary, generated, secondary, visibility FROM DBA_INDEXES WHERE table_name = 'SI

我有一个有点奇怪的问题要问:我是否可以在Oracle 11g中对特定用户隐藏特定索引,但让该用户从该索引的表中进行选择

分析如下:有一个表,其中一个字段为BLOB类型。Oracle在该列上为该表创建了内部索引:

SELECT index_name, index_type, uniqueness, 
       temporary, generated, secondary, visibility FROM DBA_INDEXES         
 WHERE table_name = 'SIGNERS_BLOBS_TABLE'
返回

INDEX_NAME                INDEX_TYPE  UNIQUENESS TEMPORARY GENERATED SECONDARY VISIBILITY 
------------------------- ----------- ---------- --------- --------- --------- ---------- 
SYS_IL0009096175C00002$$  LOB         UNIQUE     N         Y         N         VISIBLE    

我需要对特定用户隐藏这个索引。然而,这个用户必须能够从SIGNERS\u BLOBS\u表中进行选择。

据我所知,Oracle不支持索引授权。
@贾斯汀·凯夫,谢谢你提供的所有额外信息。

隐藏索引有什么作用(即,此应用程序是否正在运行数据字典查询并向用户显示结果,您是否希望避免向用户显示此索引,因为这会造成混淆?您是否试图以某种方式阻止用户在其查询中使用此索引?其他什么?)你无法摆脱LOB索引。Oracle需要它来管理BLOB>Justin Cave开发人员向我展示了一个事实,即当他在没有真正强大的用户的情况下运行他的程序时,程序会正常启动。然而,当我们在另一个几乎与模式所有者一样强大的用户的情况下运行同一程序时,程序无法使用strang运行调用此索引的错误消息格式有点不正确。因此,我想尝试对更强大的用户隐藏索引。确切的错误是什么?应用程序实际上应该删除或更改任何索引吗?如果这是第三方应用程序,听起来像是应用程序错误,需要向应用程序解决如果你真的(真的,真的)想处理一个有缺陷的应用程序(并且你对黑客解决方案有很高的容忍度),你可以跟踪应用程序生成的查询,找到它正在运行的查询(可能会碰到类似于
所有索引的东西
)并在用户模式中创建一个名为
all_index
的视图,该视图使用附加的过滤器从real
sys.all_index
中进行选择。我保证这会在某个时候影响到您(如果只有在新的Oracle版本向real视图添加了一个您没有添加到您的视图中的新列时)调试将是一件痛苦的事情,但它确实有效。