二、創(chuàng)建 (*凡oracle命令在 sqlplus中執(zhí)行, 即運(yùn)行 sqlplusw system/manager@test -這是以前安裝時講到的) 1. 數(shù)據(jù)庫 當(dāng)我們安裝好oracle8i后,一個數(shù)據(jù)庫系統(tǒng)就安裝好了,其中有一個缺省的數(shù)據(jù)庫,當(dāng)然,我們還可以創(chuàng)建新的數(shù)據(jù)庫. 2. 現(xiàn)在我們應(yīng)該建數(shù)據(jù)表空間, 就如要存放貨物,起碼首先得把房子建好吧。就是存放東西的空間。表空間就存放數(shù)據(jù)的空間. 格式: create tablespace 表間名 datafile '數(shù)據(jù)文件名' size 表空間大小; example: create tablespace data_test datafile 'e:\oracle\oradata\test\data_1.dbf' size 2000M; create tablespace idx_test datafile 'e:\oracle\oradata\test\idx_1.dbf' size 2000M; (*數(shù)據(jù)文件名 包含全路徑, 表空間大小 2000M 表是 2000兆) 3. 建好 tablespace, 就可以建用戶了 格式: create user 用戶名 identified by 密碼 default tablespace 表空間表; example: create user study identified by study default tablespace data_test; (*我們創(chuàng)建一個用戶名為 study,密碼為 study, 缺少表空間為 data_test -這是在第二步建好的.) (*抽省表空間表示 用戶study今后的數(shù)據(jù)如果沒有專門指出,其數(shù)據(jù)就保存在 data_test中, 也就是保存在對應(yīng)的物理文件 e:\oracle\oradata\test\data_1.dbf中) 4. 授權(quán)給新用戶 grant connect,resource to study; --表示把 connect,resource權(quán)限授予study用戶 grant dba to study; --表示把 dba權(quán)限授予給 study 5. 創(chuàng)建數(shù)據(jù)表 在上面,我們已建好了用戶 study 我們現(xiàn)在進(jìn)入該用戶 sqlplusw study/study@test 然后就可以在用戶study中創(chuàng)建數(shù)據(jù)表了 格式: create table 數(shù)據(jù)表名 , 后面的詳細(xì)參數(shù),請你在網(wǎng)上搜索 "oracle" "create table" "語法". 太多了,我就不附在這里了。 下面給一個例子,自己體會. create table test_user ( no number(5) not null , --pk username varchar2(30) not null , --用戶名 passpord varchar2(30) not null , --密碼 constraint pk_connectdb primary key(no) )storage (initial 10k next 10k pctincrease 0); *下面講解上面命令的各方面的含義 create table test_user --創(chuàng)建數(shù)據(jù)表 no number(5) not null , --pk (列名或字段名) 數(shù)據(jù)類型(數(shù)據(jù)長度) 該數(shù)據(jù)列不能為空 ,是列之間的分隔符 --后的內(nèi)容是注釋 constraint pk_connectdb primary key(no) (約束) 約束名 (主鍵) (列名) 意思就是 在數(shù)據(jù)表 test_user中所有行數(shù)據(jù) no的值不能相同(這就是主鍵的含義) storage (initial 10k next 10k pctincrease 0); 這個說起來比較復(fù)雜, 反正如果某個數(shù)據(jù)表要存放大量數(shù)據(jù),就把initial和next后的值設(shè)置大一點(diǎn), 否則設(shè)置小一點(diǎn). 既然上面在創(chuàng)建數(shù)據(jù)表中沒有特別指定 表空間,當(dāng)然該表就存放在study缺省表空間data_test了. create tablespace data_phonepos datefile 'd:\install\OracleXpdb\datafilephonepos.dbf' size 8000M; create user phonepos identified by phonepos default tablespace data_phonepos; grant connect, resource to phonepos; grant dba to phonepos;
權(quán)限的查詢 5。1 查詢某個用戶授予其他用戶在當(dāng)前用戶模式下的對象權(quán)限 select * from user_tab_privs_made --假如當(dāng)前用戶為WENZI,那么查詢結(jié)果就是由WENZI授權(quán),在WENZI模式下的權(quán)限記錄 5。2 查詢某個用戶授予其他用戶在該用戶模式對象及其他模式對象上的對象權(quán)限 select * from all_tab_privs_made -- 假如當(dāng)前登錄用戶為WENZI,那么查詢結(jié)果就是所有由WENZI授予的權(quán)限的記錄
修改用戶 ALTER USER avyrros IDENTIFIED EXTERNALLY DEFAULT TABLESPACE data_ts TEMPORARY TABLESPACE temp_ts QUOTA 100M ON data_ts QUOTA 0 ON test_ts PROFILE clerk; 刪除用戶 DROP USER username [CASCADE] --CASECADE 選項(xiàng)會刪除該用戶模式下的所有對象,建議在刪除前,先確認(rèn)是否有其他的依賴關(guān)系存在。 查詢屬于用戶的對象 select owner,object_name,object_type,status from dba_objects where owner='WENZI' 5.3 查詢?yōu)槟硞€用戶授予的,在其他模式對象上的權(quán)限 select * from user_tab_privs_recd --假如當(dāng)前登錄用戶為WENZI,那么查詢結(jié)果就是WENZI在其他模式對象上的權(quán)限 5.4 查詢?yōu)槟硞€用戶授予的,在該用戶模式對象與其他模式對象上的權(quán)限 select * from all_tab_privs_recd --假如當(dāng)前用戶為wenzi,則查詢結(jié)果為wenzi在整個數(shù)據(jù)庫中擁有權(quán)限的對象
角色管理 創(chuàng)建口令文件 orapwd file='..........\pwd{SID}.ora' password='***(sys的密碼)' tntries=10(口令文件最大的用戶數(shù)量) 要使某個用戶可以使用口令文件,必須為其授予SYSDBA權(quán)限,系統(tǒng)會自動將其加入到口令文件中。 grant sysdba to wenzi 當(dāng)收回SYSDBA權(quán)限時,系統(tǒng)將對應(yīng)的用戶從口令文件中刪除。 revoke sysdba from wenzi 查看口令文件管理的用戶 select * from v$pwfile_users