7 ответов:
С помощью sqlplus
sqlplus / as sysdba
run:
SELECT * FROM dba_usersЕсли вы хотите, чтобы имена пользователей выполняли следующие действия:
SELECT username FROM dba_users
скорее всего, вы хотите
SELECT username FROM dba_usersчто покажет вам всех пользователей в системе (и, следовательно, все потенциальные схемы). Если ваше определение "схемы" позволяет схеме быть пустой, это то, что вы хотите. Однако может быть семантическое различие, когда люди хотят называть что-то схемой только в том случае, если она действительно владеет хотя бы одним объектом, так что сотни учетных записей пользователей, которые никогда не будут владеть какими-либо объектами, исключаются. В том дело
SELECT username FROM dba_users u WHERE EXISTS ( SELECT 1 FROM dba_objects o WHERE o.owner = u.username )предполагая, что тот, кто создал схемы, был разумным о назначении табличных пространств по умолчанию и предполагая, что вас не интересуют схемы, поставленные Oracle, вы можете отфильтровать эти схемы, добавив предикаты на
default_tablespace, т. е.SELECT username FROM dba_users WHERE default_tablespace not in ('SYSTEM','SYSAUX')или
SELECT username FROM dba_users u WHERE EXISTS ( SELECT 1 FROM dba_objects o WHERE o.owner = u.username ) AND default_tablespace not in ('SYSTEM','SYSAUX')не так уж редко можно встретить систему, в которой кто-то неправильно дал несистемному пользователю
default_tablespaceнаSYSTEM, хотя, так что будьте уверены, что предположения сохраняются, прежде чем пытаться отфильтровать схемы, поставляемые Oracle таким образом.
select distinct owner from dba_segments where owner in (select username from dba_users where default_tablespace not in ('SYSTEM','SYSAUX'));
Как насчет :
SQL> select * from all_users;он вернет список всех пользователей / схем, их идентификаторы и даты, созданные в БД:
USERNAME USER_ID CREATED ------------------------------ ---------- --------- SCHEMA1 120 09-SEP-15 SCHEMA2 119 09-SEP-15 SCHEMA3 118 09-SEP-15
ниже sql перечислены все схемы в oracle, которые создаются после установки ORACLE_MAINTAINED=' N ' - это фильтр. Этот столбец является новым в 12С.
select distinct username,ORACLE_MAINTAINED from dba_users where ORACLE_MAINTAINED='N';
любой из следующих SQL вернет всю схему в Oracle DB.
select owner FROM all_tables group by owner;select distinct owner FROM all_tables;
Comments