我有在schema(schemaA)中创建的过程(procedureA)。 SchemaA用户没有任何特权只授予CONNECT角色。 ProcedureA负责授予特定用户的其他模式中的特定表的grant select,alter,update ... privilages。我在oracle doc(How Procedure Privileges Affect Invoker's Rights)中读到的是该过程使用所有者权限,现在我不明白sys用户如何调用此过程,因为schemaA用户没有任何权限。 ProcedureA是在没有AUTHID CURRENT_USER的情况下创建的。执行程序后,正确授予了特权。
由于
答案 0 :(得分:1)
在Paul Wright的“保护Oracle数据库12c”中,在第91页的SYSDBA网络钓鱼下,如果调用了定义者的权限过程,则表明SYSDBA的权限将通过。 (在Google图书上找到)
如果确实如此,那么当您将帐户用作SYSDBA时(自动与SYS一样),即使未定义,其他模式中的过程也会使用调用者权限运行。