it-swarm.com.de

Wie kann ich überprüfen, ob ein Benutzer ein Kontingent für den Tablespace hat?

Mein Ziel ist es, die Benutzerkontingente im Tablespace zu überprüfen:

Leider ist die Tabelle dba_ts_quotas gibt die Details des bereits verwendeten Speicherplatzes in Tablespaces an.

Ich möchte alle Benutzer sehen, die Kontingente für tbs haben, auch wenn sie keinen Platz im Tablespace verwenden.

gibt es eine Lösung, um zu überprüfen, ob ein Benutzer ein Kontingent für einen TB hat?

3
Aymanadou

DBA_TS_QUOTAS enthält auch Informationen zum zugewiesenen Kontingent, auch wenn der Benutzer keine Tabellen erstellt hat.

Aus dem Handbuch

MAX_BYTES - Benutzerkontingent in Bytes oder -1, wenn keine Begrenzung vorliegt

Beispiel:

SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 18 10:35:29 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select tablespace_name, username, bytes, max_bytes
  2  from dba_ts_quotas
  3  where tablespace_name = 'USERS'
  4    and username = 'FOOBAR';

no rows selected

SQL> create user foobar
  2    identified by welcome
  3    default tablespace users
  4    quota 10M on users;

User created.

SQL> select tablespace_name, username, bytes, max_bytes
  2  from dba_ts_quotas
  3  where tablespace_name = 'USERS'
  4    and username = 'FOOBAR';

TABLE USERNA      BYTES  MAX_BYTES
----- ------ ---------- ----------
USERS FOOBAR          0   10485760

1 row selected.

SQL>