Прежде чем пользователь Oracle сможет создать таблицу, администратор базы данных должен предоставить ему две привилегии. Первая — это системная привилегия, называемая CREATE table, которая позволяет пользователю создавать таблицы от своего имени. Вторая — использование памяти либо во всей базе данных, либо в отдельных табличных пространствах. Администратор базы данных может предоставить эту возможность множеством различных способов; наиболее распространенным является команда grant resource, которая определяет, какое табличное пространство может использоваться для хранения данных и сколько памяти отведено пользователю (не только для таблиц, но для любых других объектов, которые занимают память в файлах базы данных Oracle).
Для проверки того, есть ли у вас системная привилегия на создание таблиц, можно выдать следующую команду, чтобы видеть, какие системные привилегии действительны в настоящее время для вашего сеанса.
SQL> select * from session_privs ;
PRIVILEGE CREATE SESSION ALTER SESSION UNLIMITED TABLESPACE
CREATE TABLE CREATE CLUSTER CREATE SYNONYM CREATE VIEW CREATE SEQUENCE CREATE DATABASE LINK CREATE PROCEDURE CREATE TRIGGER 11 rows selected.
Для проверки того, есть ли у вас привилегия, требуемая для расходования памяти, и на какие табличные пространства она распространяется, можно выдать следующую команду. Она покажет, сколько памяти разрешено вам использовать, в каком табличном пространстве и сколько вы уже использовали на данный момент.
SQL> SELECT * FROM user_ts_quotas ;
TABLESPACE JNAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS USER_DATA 225 280 0 110 0.
Характеристики памяти отображаются и в байтах, и в блоках Oracle.