數據庫與linux中quota的做用

 

linux命令,quota 命令顯示磁盤使用狀況和限額。缺省狀況下,或者帶 -u 標誌,只顯示用戶限額。quota 命令報告 /etc/filesystems 文件中列出的全部文件系統的限額。若是 quota 命令以非零狀態退出,一個或多個文件系統超過限額。 linux

quota 是一個Linux命令
用途
顯示磁盤使用狀況和限額。
語法
quota [ -u [ User ] ] [ -g [ Group ] ] [ -v | -q ]
描述
root 用戶可使用帶有可選 User 參數的 -u 標誌查看其它用戶的限制。沒有 root 用戶權限的用戶能夠經過使用帶有可選 Group 參數的 -g 標誌來查看它們所屬的組的限制。
注:
若是某個特定用戶在對他有限額的文件系統上沒有文件,該命令爲那個用戶顯示 quota: none。當用戶在文件系統中有文件時,顯示用戶的實際限額。
標誌
-g 顯示用戶組的限額。
-u 顯示用戶限額。該標誌是缺省選項。
-v 顯示沒有已分配存儲器的文件系統上的限額。
-q 打印扼要消息,只包含關於使用超過限額的文件系統的信息。
注:
-q 標誌優先於 -v 標誌。
安全性
訪問控制:該命令由 root 用戶和 bin 組擁有。
特權控制:該程序是 setuid 爲了容許非特權用戶查看我的限額。
示例
1. 要顯示用戶 keith 的限額,請輸入:
quota
系統顯示下列信息:
User quotas for user keith (uid 502):
Filesystem blocks quota limit grace Files quota limit grace
/u 20 55 60 20 60 65
2. 要做爲 root 用戶顯示用戶 davec 的限額,請輸入:
quota -u davec
系統顯示下列信息:
User quotas for user davec (uid 2702):
Filesystem blocks quota limit grace files quota limit grace
/u 48 50 60 7 60 60
文件
quota.user 指定用戶限額。
quota.group 指定組限額。
/etc/filesystems 包含文件系統名稱和位置。

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;

相關文章
相關標籤/搜索