linux命令,quota 命令显示磁盘使用状况和限额。缺省状况下,或者带 -u 标志,只显示用户限额。quota 命令报告 /etc/filesystems 文件中列出的全部文件系统的限额。若是 quota 命令以非零状态退出,一个或多个文件系统超过限额。 linux
https://blog.csdn.net/tete2csdn/article/details/77481806数据库
数据库中安全
1、解决问题:ide
解决表空间很大,总显示空间不足的问题
ORA-01536:space quota exceeded for table space 'AAA '
2、三个解决办法:
(1) alter user USERNAME quota 100M on TABLESPACENAME;
(2) alter user USERNAME quota unlimited on TABLESPACENAME;
(3) grant unlimited tablespace to USERNAME;
quota是为了限制用户对表空间的使用
好比你限制用户a在tablespace a中的quota为10m,当用户a在tablespace a中的数据量达到10m后,不管你的tablespace a中有多少空间,a都没法再使用tablespace a 了。
因此你须要
alter user a quota 1000M on a;
alter user a quota unlimited on a;
grant unlimited tablespace to a
你能够查询dba_ts_quotas来获取相关信息ui
2、Quota 说明spa
配额大小指的是用户指定使用表空间的的大小。在1.1 节里提到,默认状况下,用户对全部表空间都是没有配额的,即不受空间的限制。 查看几个用户的建立脚原本验证一下:.net
CREATE USER SYSTEMblog
IDENTIFIED BY <password>get
DEFAULT TABLESPACE SYSTEMit
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
-- 2 Roles for SYSTEM
GRANT AQ_ADMINISTRATOR_ROLE TO SYSTEM WITH ADMIN OPTION;
GRANT DBA TO SYSTEM WITH ADMIN OPTION;
ALTER USER SYSTEM DEFAULT ROLE ALL;
-- 5 System Privileges for SYSTEM
GRANT GLOBAL QUERY REWRITE TO SYSTEM;
GRANT CREATE MATERIALIZED VIEW TO SYSTEM;
GRANT CREATE TABLE TO SYSTEM;
GRANT UNLIMITED TABLESPACE TO SYSTEM WITH ADMIN OPTION;
GRANT SELECT ANY TABLE TO SYSTEM;
CREATE USER DAVE
IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
-- 2 Roles for DAVE
GRANT CONNECT TO DAVE;
GRANT RESOURCE TO DAVE;
ALTER USER DAVE DEFAULT ROLE ALL;
-- 1 System Privilege for DAVE
GRANT UNLIMITED TABLESPACE TO DAVE;
从这2个脚原本看,默认状况下,都会对用户赋 unlimited tablespace 的权限。这是是在建立的时候指定的,当咱们的用户建立好以后,咱们也能够修改用户的配额。
有关用户的配额的操做说明
1. 建立用户时,指定限额
SQL> conn / as sysdba;
Connected.
SQL> create user anqing identified by anqing default tablespace users temporary tablespace temp quota 10M on users;
User created.
查询用户配额的信息:
SQL> select tablespace_name,username,max_bytes from DBA_TS_QUOTAS where username='ANQING';
TABLESPACE_NAME USERNAME MAX_BYTES
------------------------------ ---------- ----------
USERS ANQING 10485760
2.更改用户的表空间限额:
不对用户作表空间限额控制:
SQL> grant unlimited tablespace to anqing;
Grant succeeded.
这种方式是全局性的. 即修改用户多全部表空间的配额。
若是咱们想改某个具体的,即针对用户的某个特定的表空间,可使用以下SQL:
SQL> alter user anqing quota unlimited on users;
User altered.
查看配额:
SQL> select tablespace_name,username,max_bytes from DBA_TS_QUOTAS where username='ANQING';
TABLESPACE_NAME USERNAME MAX_BYTES
------------------------------ ---------- ----------
USERS ANQING -1
这时候max_bytes 为-1,即不受限制。
3. 回收用户对表空间的配额:
一样两种方式,
全局:
SQL> revoke unlimited tablespace from anqing;
Revoke succeeded.
在查看配额,已经没有了相关信息:
SQL> select tablespace_name,username,max_bytes from DBA_TS_QUOTAS where username='ANQING';
no rows selected
针对某个特定的表空间:
SQL> alter user anqing quota 0 on users;