unlimited tablespace許可權和quota 配額
http://www.itpub.net/forum.php?mod=redirect&goto=findpost&ptid=1431917&pid=17741257有關於unlimited tablespace的一些解釋
注意:授予resource角色的時候也會授予unlimited tablespace許可權,但unlimited tablespace許可權並不屬於resource角色。
1、系統許可權unlimited tablespace是隱含在dba和resource角色中的一個系統許可權。當使用者得到dba或resource的角色時, unlimited tablespace系統許可權也隱式受權給使用者。實驗一下:
SQL> create user test01 identified by a
2 default tablespace test01;
SQL> grant connect,resource to test01;
SQL>
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
TEST01 RESOURCE NO YES
TEST01 CONNECT NO YES
SQL> //可以看到有UNLIMITED TABLESPACE許可權
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
TEST01 UNLIMITED TABLESPACE NO
SQL> conn test01/a
SQL> select * from session_privs; //可以看到UNLIMITED TABLESPACE許可權
PRIVILEGE
----------------------------------------
CREATE SESSION
CREATE TABLE
CREATE CLUSTER
CREATE SEQUENCE
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
CREATE OPERATOR
CREATE INDEXTYPE
已選擇10行。
SQL> select * from role_sys_privs; //可以看到unlimited tablespace並不屬於resource
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE TYPE NO
CONNECT CREATE SESSION NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE INDEXTYPE NO
已選擇9行。
2、系統許可權unlimited tablespace不能被授予role(即使提示授權成功但實際上沒有), 可以被授予使用者。
系統許可權unlimited tablespace不會隨著resource, dba被授予role而授予給使用者。
SQL> create user test02 identified by a
2 default tablespace test01;
SQL> create role re_test;
SQL> grant resource to re_test;
SQL> grant connect,re_test to test02;
SQL> select * from dba_role_privs where grantee='TEST02';
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
TEST02 CONNECT NO YES
TEST02 RE_TEST NO YES
SQL>
未選定行
SQL> conn test02/a
SQL> select * from session_privs;
PRIVILEGE
----------------------------------------
CREATE SESSION
UNLIMITED TABLESPACE
CREATE TABLE
CREATE CLUSTER
CREATE SEQUENCE
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
CREATE OPERATOR
CREATE INDEXTYPE
已選擇10行。
SQL> select * from role_sys_privs;
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RE_TEST UNLIMITED TABLESPACE NO
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE TYPE NO
CONNECT CREATE SESSION NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE INDEXTYPE NO
已選擇10行。
SQL> alter table test move tablespace test02;
alter table test move tablespace test02
*
第 1 行出現錯誤:
ORA-01950: 對錶空間 'TEST02' 無許可權
上面即使有語句提示test02有unlimited tablespace許可權但實際操作表空間卻會報錯:無許可權
在這裡我們需要關於一個比較重要的許可權做一個說明,這個系統許可權就是unlimited tablespace
unlimited tablespace的特點:
1、unlimited tablespace系統許可權不能包含在一個角色role中
2、unlimited tablespace沒有被包括在resource和dba角色中,但是如果將resource或dba角色授予了某個使用者,那麼這個使用者將會擁有unlimited tablespace系統許可權。但是如果resource角色授予了某個角色,再將這個角色授予某個使用者,那麼這個使用者將不會擁有unlimited tablespace系統許可權。
如果需要為一個使用者指定一個限額,可以有兩種方法:
1、在建立使用者的時候指定限額:
create user test identified by a
default tablespace test
temporary tablespace temp
quota 3m on test;
2、在建立使用者完成之後對使用者限額進行指定:
create user test05 identified by a;
alter user test05 quota 3m on users;
3、更改使用者的表空間限額:
全域性:
grant unlimited tablespace to abc;
針對某個表空間:
alter user abc quota unlimited on test;
回收:
revoke unlimited tablespace from abc;
alter user abc quota 0 on test;
對於分配的臨時表空間或臨時還原表空間則不需要限額。
在此需要注意兩個概念:表空間不足和使用者配額不足
這兩者不是一個概念。表空間的大小是指實際的使用者表空間的大小;配額大小是使用者指定使用表空間的大小。二者的解決方法也不相同。配額問題的解決:alter user abc auota 2g on tablespace_name;表空間不足的話就是擴充套件表空間或者增加資料檔案了。
與表空間限額先關的資料字典檢視:
dba_ts_quotas:描述所有使用者表空間配額
user_ts_quotas:描述當前使用者表空間配額,這個檢視不會顯示使用者名稱列
在兩個資料字典中,max_bytes欄位就是表示表空間限額的值了,單位是B,其中-1代表沒有限制
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29674916/viewspace-2119959/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- unlimited tablespace許可權的授予和回收MIT
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- Linux賬號和許可權管理(理論配寫)Linux
- 選單許可權和按鈕許可權設定
- Linux的檔案存取許可權和0644許可權Linux
- Oracle資料泵建立使用者避坑(表空間配額、許可權)Oracle
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- Android6.0許可權的動態適配Android
- 許可權之選單許可權
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- 賬號和許可權管理
- 「Android6.0許可權適配| 掘金技術徵文 」Android
- 許可權系統:一文搞懂功能許可權、資料許可權
- 總結sysdba和sysoper許可權
- 一對一原始碼,前端頁面許可權和按鈕許可權控制原始碼前端
- 小知識:軟體開發的許可權控制和許可權驗證
- Linux特殊許可權之suid、sgid、sbit許可權LinuxUI
- 1.7.6. 授權和撤銷管理許可權
- mysql許可權MySql
- 許可權控制
- Linux許可權Linux
- Confluence6對比系統管理員許可權和Confluence管理員許可權
- android動態許可權到自定義許可權框架Android框架
- 【自然框架】許可權的視訊演示(二):許可權到欄位、許可權到記錄框架
- 選單許可權表sqlite和mysqlSQLiteMySql
- 使用者和組的許可權
- 白 - 許可權提升和漏洞利用技巧
- linux中安全和許可權那些事Linux
- DRF之許可權和頻率限制
- MySQL之許可權管理和備份MySql
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- 許可權系統:許可權應用服務設計
- Odoo許可權管理Odoo
- shiro許可權控制
- vue router 許可權Vue
- 特殊許可權管理
- Linux 特殊許可權Linux
- 許可權管控
- sql許可權管理SQL