oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息
查看當前用戶的缺省表空間
SQL>select username,default_tablespace from user_users;
查看當前用戶的角色
SQL>select * from user_role_privs;
查看當前用戶的系統(tǒng)權限和表級權限
SQL>select * from user_sys_privs;
?????? 結果可以是:
?????? USERNAME?????????????????????? PRIVILEGE??????????????????????????????? ADM
?????? ------------------------------ ---------------------------------------- ---
???????MISPS????????????????????????? CREATE TRIGGER?????????????????????????? NO
?????? MISPS????????????????????????? CREATE PROCEDURE???????????????????? NO
?????? MISPS????????????????????????? CREATE SEQUENCE????????????????????????NO
?????? MISPS????????????????????????? CREATE VIEW?????????????????????????????????? NO
?????? MISPS????????????????????????? UNLIMITED TABLESPACE????????????????NO
?????? MISPS????????????????????????? CREATE TABLE???????????????????????????????? NO
?????? MISPS????????????????????????? CREATE SESSION???????????????????????????? NO
SQL>select * from user_tab_privs;
查看用戶下所有的表
SQL>select * from user_tables;
?????? 此外:關于查詢表信息的還可以有:
??????
?????? SELECT * FROM ALL_TABLES;系統(tǒng)里有權限的表
?????? SELECT * FROM DBA_TABLES; 系統(tǒng)表
?????? SELECT * FROM USER_TABLES; 當前用戶下的表
1、用戶
查看當前用戶的缺省表空間
SQL>select username,default_tablespace from user_users;
查看當前用戶的角色
SQL>select * from user_role_privs;
查看當前用戶的系統(tǒng)權限和表級權限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
顯示當前會話所具有的權限
SQL>select * from session_privs;
顯示指定用戶所具有的系統(tǒng)權限
SQL>select * from dba_sys_privs where grantee='GAME';
2、表
查看用戶下所有的表
SQL>select * from user_tables;
???????此外還可以通過:sql>select * from tab;?? --找到用戶下的所有表
?????? 此外還可以通過:sql>drop table ***;????? --用drop 命令一個個刪除即可。
查看名稱包含log字符的表
SQL>select object_name,object_id from user_objects
where instr(object_name,'LOG')>0;
查看某表的創(chuàng)建時間
SQL>select object_name,created from user_objects where object_name=upper('&table_name');
查看某表的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&table_name');
查看放在ORACLE的內存區(qū)里的表
SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
3、索引
查看索引個數和類別
SQL>select index_name,index_type,table_name from user_indexes order by table_name;
查看索引被索引的字段
SQL>select * from user_ind_columns where index_name=upper('&index_name');
查看索引的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&index_name');
4、序列號
查看序列號,last_number是當前值
SQL>select * from user_sequences;
5、視圖
查看視圖的名稱
SQL>select view_name from user_views;
查看創(chuàng)建視圖的select語句
SQL>set view_name,text_length from user_views;
SQL>set long 2000; 說明:可以根據視圖的text_length值設定set long 的大小
SQL>select text from user_views where view_name=upper('&view_name');
6、同義詞
查看同義詞的名稱
SQL>select * from user_synonyms;
7、約束條件
查看某表的約束條件
SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
from user_constraints where table_name = upper('&table_name');
SQL>select c.constraint_name,c.constraint_type,cc.column_name
from user_constraints c,user_cons_columns cc
where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
and c.owner = cc.owner and c.constraint_name = cc.constraint_name
order by cc.position;
8、存儲函數和過程
查看函數和過程的狀態(tài)
SQL>select object_name,status from user_objects where object_type='FUNCTION';
SQL>select object_name,status from user_objects where object_type='PROCEDURE';
查看函數和過程的源代碼
SQL>select text from all_source where owner=user and name=upper('&plsql_name');
-------------------------------------------------------------------------------------------------------------------------------------
ORACLE:
----常用數據字典
USER_??
? 記錄用戶對象的信息,如user_tables包含用戶創(chuàng)建的所有表; user_views,user_constraints等;
ALL_??
記錄用戶對象的信息及被授權訪問的對象信息;
DBA_
? 記錄數據庫實例的所有對象的信息,如DBA_USERS包含數據庫實例中
所有用戶的信息,DBA的信息包含user和all的信息;
V$ 當前實例的動態(tài)視圖,包含系統(tǒng)管理和優(yōu)化使用的視圖;
GV_ 分布環(huán)境下所有實例的動態(tài)視圖,包含系統(tǒng)管理和優(yōu)化使用的視圖, 這里的GV表示 Global v$的意思;
如當前分布環(huán)境下啟動多個實例:
set line 160 (每行顯示160個字符)
select inst_id,sid,lmode from gv$lock where inst_id = 1 or inst_id=2;
oracle常用數據字典,oracle10增加了不少數據字典10g r1 有1713個,r2有1870個:
1 基本的數據字典:
DBA_TABLES 所有用戶的所有表的信息;
DBA_TAB_COLUMNS 所有用戶的表的列(字段)信息;
DBA_VIEWS 所有用戶的所有視圖信息;
DBA_SYNONYMS 所有用戶同義詞信息;
DBA_SEQUENCES 所有用戶序列信息;
DBA_CONSTRAINTS 所有用戶的表約束信息;
DBA_INDEXES 所有用戶索引的簡要信息;
DBA_IND_COLUMNS 所有用戶索引的列信息;
DBA_TRIGGERS 所有用戶觸發(fā)器信息 ;
DBA_SOURCE所有用戶存儲過程源代碼信息;
DBA_PROCEDUS 所有用戶存儲過程;
DBA_SEGMENTS 所有用戶段(表,索引,Cluster)使用空間信息;
DBA_EXTENTS 所有用戶段的擴展段信息;
DBA_OBJECTS 所有用戶對象的基本信息(包括素引,表,視圖,序列等);
CAT 當前用戶可以訪問的所有的基表 ;
TAB 當前用戶創(chuàng)建的所有基表,視圖,同義詞等;
DICT 構成數據字典的所有表的信息;
2 與數據庫組件相關的數據字典:
數據庫:
? V$DATABASE 同義詞 V_$DATABASE,記錄系統(tǒng)的運行情況;
表空間:?
DBA_TABLESPACES 記錄系統(tǒng)表空間的基本信息;
DBA_DATA_FILES 記錄系統(tǒng)數據文件及表空間的基本信息;
DBA_FREE_SPACE 記錄系統(tǒng)表空間的剩余空間的信息;
控制文件:
V$CONTROLFILE 記錄系統(tǒng)控制文件的路徑信息;
V$PARAMETER 記錄系統(tǒng)各參數的基本信息;
v$CONTROLFILE_RECORD_SECTION 記錄系統(tǒng)控制運行的基本信息;
數據文件:
DBA_DATA_FILES 記錄系統(tǒng)數據文件及表空間的基本信息;
v$DATAFILE 記錄來自控制文件的數據文件信息;
v$FILESTAT 記錄數據文件讀寫的基本信息 ;
???
--查看VGA信息:
show sga;
select * from v$sgastat;
--可以通過以下幾個動態(tài)性能視圖查看信息:
V$sysstat 系統(tǒng)統(tǒng)計信息
V$sesstat 用戶會話統(tǒng)計信息?
V$pgastat 顯示內存使用統(tǒng)計信息
V$sql_workarea SQL游標所用工作區(qū)的信息
V$ sql_workarea_active 當前系統(tǒng)工作區(qū)的信息
--在V$process動態(tài)性能視圖中可以查詢到每個Oracle進程的PGA分配的內存和已使用的內存情況,
--其中PGA_used_mem表示已使用的,pag_alloc_mem表示已分配的,pga_max_men表示PGA的最大值。
SQL> select pid,pga_used_mem,pga_alloc_mem,pga_max_mem from v$process;
--查看后臺進程:
SELECT * FROM v$bgprocess WHERE paddr <> '00';
--查看所有的表空間;
SQL> select tablespace_name from dba_data_files order by tablespace_name;
--查看表空間的名字及大小:
SQL> select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size??
from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name??
group by t.tablespace_name;
--創(chuàng)建表空間的語法是:
CREATE TABLESPACE tablespacename
DATAFILE 'filename' [SIZE integer [K|M]]?
[AUTOEXTEND [OFF|ON]];
--創(chuàng)建有多個數據文件的表空間:
SQL> create tablespace SALES
datafile 'd:/sales/SALES_DATA01.dbf' size 10m autoextend on next 10m maxsize 100m,
'd:/sales/SALES_DATA02.dbf' size 10m autoextend on next 10m maxsize
unlimited,'d:/sales/SALES_DATA03.dbf' size 10m;
--查看表空間的大小;
SQL> SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 MB FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;
--查看表空間中數據文件存放的路徑:
SQL> SELECT TABLESPACE_NAME, BYTES/1024/1024 FILE_SIZE_MB, FILE_NAME FROM DBA_DATA_FILES;
刪除表空間:
SQL> drop tablespace worktbs including contents;
表空間已丟棄。
再次查詢表空間會發(fā)現已經沒有worktbs表空間了。
如果我們再次刪除表空間會出現什么后果?
刪除一個不存在的表空間:
SQL> drop tablespace worktbs including contents;
drop tablespace worktbs including contents
*
ERROR 位于第 1 行:
ORA-00959: 表空間'WORKTBS'不存在
o 為表空間增加數據文件
SQL> alter tablespace sales add datafile 'd:/oracle/oradata/test/testtablespace/
sales_data04.dbf' size 10m autoextend on next 10m maxsize 100m,
'c:/oracle/oradata/test/testtablespace/sales_data05.dbf' size 10m autoextend on next 10m maxsize unlimited, 'c:/oracle/oradata/test/testtablespace/sales_data06.dbf' size 10m;
表空間已更改。
o 修改數據文件的大小
o 在數據文件中的可用空間未使用完時,允許對數據文件進行壓縮,當壓縮空間大小超過未使用空間大小時,將會產生錯誤。
SQL> alter database datafile 'c:/oracle/oradata/test/testtablespace/SALES_DATA04.dbf' resize 30m;
數據庫已更改。
o 關閉表空間數據文件的自動擴展屬性
o alter database
o datafile 'c:/SALES_DATA04.dbf' ,
o 'c:/SALES_DATA05.dbf',
o 'c:/SALES_DATA06.dbf'
o autoextend off;
o 打開表空間數據文件的自動擴展屬性
o alter database
o datafile 'c:/SALES_DATA04.dbf' ,
o 'c:/SALES_DATA05.dbf',
o 'c:/SALES_DATA06.dbf'
o autoextend on;
o 修改表空間屬性(離線)
o alter tablespace sales offline;??
o 修改表空間屬性(在線)
o alter tablespace sales online;
o 修改表空間屬性(只讀)
o alter tablespace sales read only;
o 修改表空間屬性(讀寫)
o alter tablespace sales read write;
o 如下系統(tǒng)表空間不得設置為 offline 或者 read only
o system , temp,undo ,undotbs?
o 移動表空間的數據文件
o 1. 使表空間脫機(系統(tǒng)表空間不得脫機,故不得移動)
o 2. 修改數據文件的名稱
o 3. 執(zhí)行 alter tablespace rename datafile 命令
o 4. 使表空間聯機
o 第一步:alter tablespace sales offline;??
o 第二步:物理移動數據文件到目的地(可以是表空間的
o 部分數據文件,可以修改數據文件的名稱)
o 第三步: 邏輯移動,修改控制文件的內容
o alter tablespace sales rename?
o datafile 'c:/sales01.dbf' to 'd:/sales02.dbf'
o --可以有多個數據文件,但是源文件
o 要在to的左邊,目的文件要在to 右邊,文件名稱之間逗號分割.
o 第四步: 將表空間聯機
o alter tablespace sales online;
o 第五步:查詢dba_data_files確認
o 創(chuàng)建用戶,指定默認表空間,磁盤配額
o create user rose identified by rose default
o tablespace sales quota 10m on sales;
o 給用戶授權
o grant connect,resource,dba to rose;
o 用戶登錄
o connect rose/rose
o 創(chuàng)建表
o create table emp(eid number)?
o 該表默認放在表空間 sales 中
o 查詢用戶的存儲限額dba_ts_quotas?
o 刪除表空間(如果該表空間為空)
o drop tablespace sales ;
o 刪除表空間的同時刪除數據文件(不為空)
o drop tablespace sales including contents and datafiles;
o 創(chuàng)建表的同時指定該表的存儲位置
o create table mytab(tid int ) tablespace sales;
o 刪除表空間(如果該表空間為空)
o drop tablespace sales ;
o 刪除表空間的同時刪除數據文件(不為空)
o drop tablespace sales including contents and datafiles;
o 創(chuàng)建表的同時指定該表的存儲位置
o create table mytab(tid int ) tablespace sales;
o 查看當前用戶每個表占用空間的大小:
o select segment_name,sum(bytes)/1024/1024 from user_extents group by segment_name?
o 查看每個表空間占用空間的大小:
o select tablespace_name,sum(bytes)/1024/1024 from dba_segments group by tablespace_name?
只有用合法的用戶帳號才能訪問Oracle數據庫
Oracle 有幾個默認的數據庫用戶??
Scott/tiger
創(chuàng)建一個名稱為 martin 的用戶,其密碼為 martinpwd
CREATE USER MARTIN IDENTIFIED BY martinpwd
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
GRANT 命令可用于為用戶分配權限或角色;
CONNECT角色允許用戶連接至數據庫,并創(chuàng)建數據庫對象。
GRANT CONNECT TO MARTIN;?
RESOURCE角色允許用戶使用數據庫中的存儲空間。
GRANT RESOURCE TO MARTIN;?
此系統(tǒng)權限允許用戶在當前模式中創(chuàng)建序列,此權限包含在CONNECT角色中。
GRANT CREATE SEQUENCE TO MARTIN;?
GRANT CREATE SESSION TO MARTIN;
GRANT CREATE TABLE TO MARTIN;
GRANT CREATE VIEW TO MARTIN;
GRANT CREATE SEQUENCE TO MARTIN;
授予用戶 MARTIN 操作emp表對象的權限 :
允許用戶查詢 TEST 表的記錄
GRANT SELECT ON EMP TO MARTIN;?
允許用戶更新 TEST 表中的記錄
GRANT UPDATE ON EMP TO MARTIN;?
允許用戶插入、刪除、更新和查詢 TEST 表中的記錄
GRANT ALL ON EMP TO MARTIN;?
ALTER USER 命令可用于更改口令:
修改 MARTIN 用戶的密碼:
ALTER USER MARTIN IDENTIFIED BY martinpass;
DROP USER 命令用于刪除用戶:?
刪除 MARTIN 用戶模式:
DROP USER MARTIN CASCADE;
alter session set nls_date_format='yyyy-mm-dd';
1開始創(chuàng)建數據庫:
----------------使用工具創(chuàng)建 (步驟省略)
2登陸新數據庫?
run/sqlplus sys/sys@ACCP
(此時如果登陸老數據庫使用 sqlplus sys/sys@orac9i)
2創(chuàng)建表空間:sales (用來保存accp數據庫的數據)
create tablespace TestTBS datafile 'd:/sales/sales001.dbf' size 10m autoextend on next 10m maxsize 30m,'d:/sales/sales002.dbf' size 10m autoextend on next 10m maxsize 30m
3創(chuàng)建用戶accp并授予權限
grant connect to accp;
grant resource to accp;
4以accp用戶身份登陸accp數據庫
create table person(pid number(5),pname varchar2(20)) tablespace testtbs;
insert into person values(1001,'TOM');
commit;
select table_name,tablespace_name from user_tables;
select * from person;
總結
以上是生活随笔為你收集整理的oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿勒泰至柳州麻蓝岛路程多远
- 下一篇: 章鱼小丸子做好变冷了,就缩小了,这个问题