ORACLE - процедура создания предоставлена, но не может создать процедуру

В базе данных есть пользователь, которому предоставлена ​​привилегия CREATE PROCEDURE. Но когда этот пользователь пытается создать простую процедуру, появляется следующая ошибка: ORA-01031: недостаточные привилегии 01031. 00000 - "недостаточные привилегии" * Причина: была предпринята попытка изменить текущее имя пользователя или пароль без соответствующей привилегии. Эта ошибка также возникает при попытке установить базу данных без необходимых прав операционной системы.

вот DDL для процедуры:

 CREATE OR REPLACE PROCEDURE TOTALBASE.ROUNDUP 
          (CUR OUT SYS_REFCURSOR  ) 
 AS 
 BEGIN
  OPEN CUR FOR
   SELECT * FROM TOTALBASE.ABONENT; 
 END ROUNDUP;

Что еще я должен рассмотреть, чтобы сделать эту работу? Я подозреваю, что даже если привилегия предоставлена ​​любому, кто не входит в группу администраторов или группу ORA_DBA, не может создать процедуру. но я не уверен.

2 ответа

Решение

Чтобы создать процедуру в схеме, отличной от вашей, вам понадобится привилегия "CREATE ANY PROCEDURE".

Как правило, эта привилегия не должна предоставляться незначительно, поскольку ее можно легко использовать для обхода безопасности базы данных.

Надеюсь, это поможет.

После нескольких комментариев ниже, я пытаюсь снова.

Не создавайте процедуру в другой схеме; разрешить каждому пользователю создавать объекты только в своей схеме.

Таким образом, у вас меньше причин для GRANT доступ к другим объектам схемы. TOTALBASE Пользователь может, чем предоставить EXECUTE привилегия на эту процедуру для текущего пользователя.

Текущий пользователь, которому нужны данные из TOTALUSER таблица, не нужно создавать или получать доступ к другим объектам, когда он имеет EXECUTE привилегия на функцию или процедуру.

Если смотреть под другим углом, так же легче поддерживать: TOTALUSER предоставляет своего рода API в том, как он предоставляет данные текущему пользователю, скрывая детали реализации, которые могут измениться в будущем, будучи прозрачным для текущего пользователя.

Другие вопросы по тегам