Я имею немного странный вопрос, когда речь идет о роли оракула и моя схема кода создания, я сделаю все возможное, чтобы описать мою проблему ниже:Проблем с пользователем системы оракула доступа/ролей и разрешения
On схема создания роли создается с использованием предоставленного имени схемы.
EXECUTE IMMEDIATE 'CREATE ROLE ' || USER || 'ADMIN_R';
Эта роль затем предоставляется конкретным пользователям, связанным с этой схемой.
DECLARE
V_ROLE_NAME CONSTANT VARCHAR2(30) := USER || 'ADMIN_R';
CURSOR C_ADMIN_USERS IS
SELECT USERNAME FROM DBUSERS WHERE ROLE = 'ADMINISTRATION';
BEGIN
FOR REC IN C_ADMIN_USERS
LOOP
EXECUTE IMMEDIATE 'GRANT ' || V_ROLE_NAME || ' TO ' || REC.USERNAME || ' WITH ADMIN OPTION';
END LOOP;
END;
Пользователи, имеющие эту роль, имеют доступ к специальному пакету администрирования.
EXECUTE IMMEDIATE 'GRANT EXECUTE ON P_ADMINISTRATION TO ' || USER || 'ADMIN_R';
Проблема заключается Когда я бросаю схему он не падает эту роль (принадлежит к оракулу), поэтому, когда я воссоздать эту схему всего процесс не потому, что эта роль уже существует. Я также не могу предоставить доступ к этой роли без входа в систему пользователей, которых я хочу избежать. Простое решение состоит в том, чтобы просто отказаться от него, но моя озабоченность в этом случае заключается в том, что администратор базы данных использует эту роль для предоставления доступа к дополнительным пользователям и потенциально дополнительным пакетам, которые будут потеряны, если мы просто произвольно отбросим эту роль для воссоздания Это.
Любая помощь будет принята с благодарностью.
Я не могу предоставить эту роль с помощью зарегистрированного пользователя, хотя , Я должен будет использовать пользователя системы, чтобы предоставить ему схему в этом случае. Кого я хочу избежать. –