【正文】
、數(shù)據(jù)塊和模式對(duì)象。一個(gè)數(shù)據(jù)庫(DATABASE)由一個(gè)或多個(gè)表空間所組成。一個(gè)段(SEGMENT)由一組范圍組成。一個(gè)數(shù)據(jù)塊(DATABASE BLOCK)對(duì)應(yīng)磁盤上的一個(gè)或多個(gè)物理塊。每一個(gè)數(shù)據(jù)庫都必須包含一個(gè)名為SYSTEM的表空間。為了增強(qiáng)對(duì)數(shù)據(jù)庫的控制和維護(hù),一般一個(gè)數(shù)據(jù)庫都包含多個(gè)表空間。每一個(gè)表空間是都由段組成。比較重要的是回滾段,它記錄數(shù)據(jù)庫的變更信息,以實(shí)現(xiàn)數(shù)據(jù)庫的讀一致性及恢復(fù)工作。如果使用多個(gè)表空間,至少還應(yīng)有一個(gè)另外的回滾段。數(shù)據(jù)庫的用戶ORACLE數(shù)據(jù)庫是個(gè)多用戶系統(tǒng)。例如,每一個(gè)ORACLE數(shù)據(jù)庫都有一個(gè)用戶表,它記載著每一個(gè)用戶的有關(guān)信息,一旦用戶進(jìn)入系統(tǒng),ORACLE系統(tǒng)會(huì)通過這張表來檢查用戶的合法性。通常,ORACLE將用戶分為三類,即DBA、RESOUCE和CONNECT三類角色,使不同的用戶的權(quán)限各不相同。除了SYS、SYSTEM用戶外,其余用戶都要一一建立,建立用戶的方法如下:假設(shè)要建的用戶名為RSXT,口令為RSPASS。請(qǐng)注意,該用戶建立后,還要及時(shí)授權(quán),否則像上述剛剛建成的用戶,則一無所為,甚至都不能連接數(shù)據(jù)庫。對(duì)于一個(gè)有著許多用戶的數(shù)據(jù)庫系統(tǒng),我們可以通過下述方法來了解數(shù)據(jù)庫的用戶情況。(2)SQLSELECT*FROM USERUSERS。對(duì)于DBA用戶,有三條命令,即:(1)SQLDBASELECT*FROM ALLUSERS。(3)SQLDBASELECT*FROM DBAUSERS。關(guān)于非DBA用戶的信息由于DBA用戶具有最高權(quán)限,為安全起見,只有系統(tǒng)管理員才授予DBA權(quán)限,大多數(shù)用戶均為非DBA用戶。我們可以采用下述方法來了解有關(guān)非DBA用戶的信息??梢圆榭丛撚脩舻哪J(rèn)表空間,臨時(shí)表空間和用戶創(chuàng)建時(shí)間??梢圆榭丛撚脩魟?chuàng)建的所有表的詳細(xì)信息,由于列名較多,一屏看不了幾個(gè)表。〉SELECT*FROM USERVIEWS。同樣,如果僅僅想查看用戶所建視圖的視圖名,可以用下面的命令:SQLSELECT VIEWNAME FROM USERVIEWS??梢圆榭丛撚脩艨纱嫒〉谋砜臻g的信息??梢圆榭丛撚脩艨纱嫒〉谋砜臻g的剩余空間??梢圆榭丛撚脩舻谋砜臻g的份額??梢圆榭丛撚脩舯皇谟璧慕巧???梢圆榭丛撚脩舻南到y(tǒng)權(quán)限及能否再授予其它用戶的權(quán)限。可以查看該用戶能訪問其它用戶的表、視圖等的對(duì)象權(quán)限??梢圆榭丛撚脩羰谟杵渌脩舻谋?、視圖等的對(duì)象權(quán)限。 ORACLE的數(shù)據(jù)字典是數(shù)據(jù)庫的重要組成部分之一,它隨著數(shù)據(jù)庫的產(chǎn)生而產(chǎn)生, 隨著數(shù)據(jù)庫的變化而變化, 體現(xiàn)為sys用戶下的一些表和視圖。 數(shù)據(jù)字典里存有用戶信息、用戶的權(quán)限信息、所有數(shù)據(jù)對(duì)象信息、表的約束條件、統(tǒng)計(jì)分析數(shù)據(jù)庫的視圖等?! 『芏鄷r(shí)候,一般的ORACLE用戶不知道如何有效地利用它。select * from dictionary where instr(ments,39。)。 如果我們想知道user_indexes表各字段名稱的詳細(xì)含義,可以用下面這條SQL語句: SQL。USER_INDEXES39。 下面按類別列出一些ORACLE用戶常用數(shù)據(jù)字典的查詢使用方法。select username,default_tablespace from user_users。select * from user_role_privs。select * from user_sys_privs。select * from user_tab_privs。select * from user_tables。select object_name,object_id from user_objects where instr(object_name,39。)。 查看某表的創(chuàng)建時(shí)間 SQL。amp。)。select sum(bytes)/(1024*1024) as size(M) from user_segments where segment_name=upper(39。table_name39。 查看放在ORACLE的內(nèi)存區(qū)里的表 SQL。Y39。0。select index_name,index_ty