6 votes

Liste de tous les utilisateurs, à l'exception des utilisateurs par défaut

J'ai besoin de la liste de tous les utilisateurs, à l'exception des utilisateurs d'Oracle par défaut.

Select Username from all_users;

Cette requête me donnera le résultat, mais je ne veux que des utilisateurs créés manuellement. Comme il y a plus de 50 utilisateurs dans ma base de données, je ne peux pas parcourir chaque utilisateur.

J'ai essayé :

http://www.orafaq.com/wiki/List_of_default_database_users A partir d'ici, j'ai obtenu la liste de tous les utilisateurs par défaut, alors si je devais sauter tous les utilisateurs en utilisant la clause where dans la requête ci-dessus comme suit

Select Username from all_users where Username NOT IN ('List All Default
Users Given By Oracle');

Ou existe-t-il un moyen rapide de le faire ?

-Nagendra

2voto

Rajesh Chaudhary Points 108

Selon Oracle Database 12c, il s'agit de la liste des utilisateurs par défaut à éviter et à obtenir le détail de tous les autres utilisateurs.

veuillez vérifier le lien ci-dessous pour en savoir plus : https://docs.oracle.com/database/121/NTDBI/startrdb.htm#NTDBI2845

select username from dba_users where username not in ('ANONYMOUS'
,'APEX_040200'
,'APEX_PUBLIC_USER'
,'APPQOSSYS'
,'AUDSYS'
,'BI'
,'CTXSYS'
,'DBSNMP'
,'DIP'
,'DVF'
,'DVSYS'
,'EXFSYS'
,'FLOWS_FILES'
,'GSMADMIN_INTERNAL'
,'GSMCATUSER'
,'GSMUSER'
,'HR'
,'IX'
,'LBACSYS'
,'MDDATA'
,'MDSYS'
,'OE'
,'ORACLE_OCM'
,'ORDDATA'
,'ORDPLUGINS'
,'ORDSYS'
,'OUTLN'
,'PM'
,'SCOTT'
,'SH'
,'SI_INFORMTN_SCHEMA'
,'SPATIAL_CSW_ADMIN_USR'
,'SPATIAL_WFS_ADMIN_USR'
,'SYS'
,'SYSBACKUP'
,'SYSDG'
,'SYSKM'
,'SYSTEM'
,'WMSYS'
,'XDB'
,'SYSMAN'
,'RMAN'
,'RMAN_BACKUP');

1voto

davegreen100 Points 1732

Vous pourriez éventuellement faire quelque chose avec la date de création, il est probable que les utilisateurs du système aient tous été créés lors de la configuration de la BD, les utilisateurs supplémentaires peuvent avoir été créés les jours/semaines/mois suivants. Une requête qui montre tous les utilisateurs créés après la date de création minimale pourrait donc vous aider.

SELECT username 
  FROM dba_users 
 WHERE TRUNC(created) > (SELECT MIN(TRUNC(created)) 
                           FROM dba_users);

0voto

R. Du Points 1

Depuis Oracle 12c r1, vous pouvez utiliser la nouvelle colonne ORACLE_MAINTAINED dans les vues ALL_USERS et DBA_USERS.

https://docs.oracle.com/database/121/REFRN/GUID-DDD25C8F-7EC9-46BC-ABEA-529C64FA09E2.htm

par exemple

select * from dba_tables where owner in 
 (select username from all_users where oracle_maintained = 'N')

devrait vous donner la liste des tables appartenant à des utilisateurs Oracle non internes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X