Octroi SELECT de EXECUTE privilèges à SYS des objets - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Octroi SELECT de EXECUTE privilèges à SYS des objets

Généralement, vous transférez les privilèges en utilisant des rôles, qui peuvent contenir de nombreux objets. Pour accorder des privilèges à un seul objet, utilisez la RDS procédure Amazonrdsadmin.rdsadmin_util.grant_sys_object. La procédure accorde uniquement les privilèges qui ont déjà été accordés à l'utilisateur principal par le biais d'un rôle ou d'une attribution directe.

La procédure grant_sys_object possède les paramètres suivants.

Important

Pour toutes les valeurs de paramètre, utilisez les majuscules sauf si vous avez créé l'utilisateur avec un identifiant sensible à la casse. Par exemple, si vous exécutez CREATE USER myuser ou CREATE USER MYUSER, le dictionnaire de données stocke MYUSER. Toutefois, si vous utilisez des guillemets doubles dans CREATE USER "MyUser", le dictionnaire de données stocke MyUser.

Nom du paramètre Type de données Par défaut Obligatoire Description

p_obj_name

varchar2

Oui

Nom de l'objet pour lequel des privilèges seront accordés. L'objet peut être un répertoire, une fonction, un package, une procédure, une séquence, une table ou une vue. Les noms d'objet doivent être orthographiés correctement lorsqu'ils apparaissent dans DBA_OBJECTS. La plupart des objets système sont définis en majuscules, si bien que nous vous recommandons d'essayer cela en premier lieu.

p_grantee

varchar2

Oui

Nom de l'objet auquel des privilèges seront accordés. L'objet peut être un schéma ou un rôle.

p_privilege

varchar2

null

Oui

p_grant_option

booléen

false

Non

Définissez ce paramètre sur true pour l'utiliser avec l'option d'attribution.

L'exemple suivant accorde des privilèges select sur un objet nommé V_$SESSION à un utilisateur nommé USER1.

begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$SESSION', p_grantee => 'USER1', p_privilege => 'SELECT'); end; /

L'exemple suivant accorde des privilèges select sur un objet nommé V_$SESSION à un utilisateur nommé USER1 avec l'option d'attribution.

begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$SESSION', p_grantee => 'USER1', p_privilege => 'SELECT', p_grant_option => true); end; /

Pour pouvoir attribuer des privilèges sur un objet, votre compte doit avoir ces privilèges directement attribués avec l'option appropriée ou via un rôle accordé avec with admin option. Dans le cas le plus courant, vous souhaiterez peut-être accorder une autorisation SELECT sur une DBA vue qui a été accordée au SELECT_CATALOG_ROLE rôle. Si ce rôle n'est pas déjà directement attribué à votre utilisateur avec with admin option, vous ne pouvez pas transférer le privilège. Si vous avez le DBA privilège, vous pouvez attribuer le rôle directement à un autre utilisateur.

L'exemple suivant accorde les rôles SELECT_CATALOG_ROLE et EXECUTE_CATALOG_ROLE à USER1. Puisque le with admin option est utilisé, il USER1 peut désormais accorder l'accès aux SYS objets qui ont été accordés àSELECT_CATALOG_ROLE.

GRANT SELECT_CATALOG_ROLE TO USER1 WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE to USER1 WITH ADMIN OPTION;

Les objets déjà attribués à PUBLIC n'ont pas besoin d'être réattribués. Si vous utilisez la procédure grant_sys_object pour accorder de nouveau l'accès, l'appel de procédure réussit.