Если те пользователи, которым вы пытаетесь дать это разрешение, могут принадлежать к обеим ролям, вы можете использовать WITH GRANT OPTION
при предоставлении роли, которую вы хотите разрешить грантополучателю:
GRANT A TO user WITH GRANT OPTION;
GRANT B TO user;
Следовательно, user
сможет предоставить роль A, но не роль B (хотя он будет принадлежать обоим).
РЕДАКТИРОВАТЬ: Указанный вами сценарий (позволяющий пользователю предоставлять роль другим лицам, не принадлежащим ей) невозможен в Oracle, за исключением случая, когда этот пользователь создал роль. Согласно Oracle Docs (https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm#SQLRF01603) «Чтобы предоставить роль, вы должны были либо получить роль с ADMIN OPTION
, либо получить системную привилегию GRANT ANY ROLE
, либо вы должны были создать роль».