oracle使用總結

來源:互聯網
上載者:User
3個預設的帳戶:
        對於oracle 9來說:
sys change_on_install 網路系統管理員 [as sysdba]
system manage 本地管理員
scott tiger 普通使用者 預設鎖定,需解鎖才能用
     對於oracle 10來說:
     sys和system是沒有密碼的,scott也沒有密碼,都要自己設定,scott使用需解鎖。

常用操作:
     sqlplus lisi/lisi 使用者登入
disconn;  中斷連線(使用者已經登入成功的情況下才能使用)
conn lisi/lisi; 開啟串連(使用者已經登入成功的情況下才能使用)
commit; 提交資料,每次進行增、刪、改之後就要執行這個命令,以儲存到硬碟上,
                其他使用者操作時,才會資料一致。
     

建立使用者:
     一般用sys進行操作:
create user lisi identified by lisi;


系統許可權:(進行DDL操作的許可權)
     授權:
grant create session to lisi;      會話許可權,每個使用者都要有這個許可權後才能登陸
grant create table to lisi;       建表許可權,建表之前先要有資料表空間
grant unlimited tablespace to lisi;  不受限資料表空間許可權,可以對資料庫中所有資料表空間進行操作
     有了這三個授權之後才能對錶進行CRUD操作

     撤消許可權:
revoke create session from lisi;
revoke create table from lisi;
revoke unlimited tablespace from lisi;

        將某個許可權公開(比如sys帳戶的以下兩個許可權):
grant create session to public;
grant create any talbe to public;

查看許可權表:
set linesize 400 設定行寬度
select * from user_sys_privs


對象許可權(進行DML操作的許可權):
grant select on mytab to lisi;    把對錶的查詢許可權授予lisi
grant all on mytab to lisi; 把對錶的增、刪、改、查、索引、外鍵等許可權授予lisi

revoke select on mytab from list; 對lisi撤消對錶的查詢許可權
revoke all on mytab from lisi;    對lisi撤消對錶的所有許可權

select * from user_tab_privs;    查看使用者對錶的操作許可權範圍

對象許可權可以控制到列(僅限於增、改):
grant update(name) on mytab to lisi;   把對錶中name欄位的更新許可權授予lisi
grant insert(id) on mytab to lisi; 把對錶中id欄位的插入許可權授予lisi

select * from user_col_privs;     查看使用者對錶中列的操作許可權範圍

注意:查詢和刪除不能控制到列。

ddl----資料定義語言 (Data Definition Language)
dml----資料操縱語言
dcl----資料控制語言
dml中的增刪改需要 commit , 其他不用;
     如果忘記了commit,可能用不同的使用者對同一表進行操作時,會發生資源衝突(不能進行DML操作),
     同一個使用者操作時;會看不到最新的資料結果。commit是把資料寫到硬碟上。


許可權的傳遞:
grant alter any table to lisi with admin option; 
     註:在oracle 10中,假設sys使用者授予alter any table給lisi,lisi又把這個許可權授予給wang,
       當sys撤消lisi的alter any table許可權時,wang的alter any table許可權還會存在。

grant select On A to lisi with grant option;
     註:在oracle 10中,假設sys使用者授予select On A 給lisi,lisi又把這個許可權授予給wang,
       當sys撤消lisi的select On A許可權時,wang的這個許可權也會被撤消。 


角色
create role myrole;
grant create session to myrole;
     grant create table to myrole;
drop role myrole;
        不能把unlimited tablespace許可權授予自訂的角色,因為這個許可權比較大,是一個比較特殊的許可權。

注意:
create table 可以給自己建立表 create any table 建立任意一個使用者的表
[alter table] 沒有這個許可權 alter any table  修改任意一個使用者的表
[drop table] 沒有這個許可權 drop any table 刪除任意一個使用者的表
當一個使用者有了create any table許可權時,也就有了另外兩個許可權。
     由於create any table許可權較大,所以不建議把它授予給角色。

表是屬於某一個使用者的。
而角色不屬於某個使用者,是一個使用者集合。

資料庫的三種驗證機制:
作業系統驗證   / (當前window使用者,系統管理員許可權)
密碼檔案驗證 sys
資料庫驗證 scott


linux下的oracle的啟動過程
lsnrctl start
sqlplus sys/oracle as sysdba
startup


window下的oracle的啟動過程
lsnrctl start         啟動監聽器
oradim -startup -sid orcl 啟動資料庫執行個體



管理員密碼丟了怎麼辦?

     ★假設使用者是scott,密碼丟了,要對它進行修改。

     1.用sys登陸 sqlplus / as sysdba;注,這是作業系統驗證,

      或者使用sqlplus sys/sys as sysdba;進行登入

     2.執行sql語句 alter user scott identified by tiger; 

     經本人實驗,通過。

        ★如果使用者是sys,由於它屬於SYSDBA,採用作業系統驗證和密碼檔案驗證(SYSOPER也是採用這兩種驗證),

     當我們使用sqlplus / as sysdba進行登入時,就是使用作業系統驗證,由於你在window下是管理員,

     預設安裝時會把目前使用者添加到ora_dba使用者組中,所以有許可權登入。

     這樣比較危險,開啟電腦管理->本機使用者和組->組->ora_dba,把當前window使用者從表中刪除,

             這樣用sqlplus / as sysdba就不能登入了。
      ★假設上面的操作都做了,這時就要使用sqlplus sys/sys as sysdba進行登入了,而在這種情況下只有一種驗證,

     那就是密碼檔案驗證,所以如果忘了sys的密碼,這時就要執行以下操作:

     1.找到PWDorcl.ora

      一般位於C:\oracle\product\10.2.0\db_1\database\下,找到後將PWDorcl.ora刪除。

     2.使用命令重建PWDorcl.ora

     在命令列中,輸入

     orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDorcl.ora password=sys entries=10

     執行完成後,sys的密碼就改成了sys了。

     經本人實驗,通過。file指PWDorcl.ora檔案的路徑,password就是sys的密碼,entries是使用者數量

帳戶管理細節         建立使用者的完整格式:        create user 使用者名稱 identified by 密碼        default tableSpace 資料表空間        Temporary TableSpace 資料表空間        Quota 整數[ K | M ] | Limited | unlimited  on 資料表空間                 例子:        create user abc        identified by 123        default tablespace Users        Temporary tablespace Temp        Quota 50M on Users                  限制使用者:        使用者加鎖    --  alter user 使用者名稱 account lock        使用者解鎖  --    alter user 使用者名稱 account unlock        使用者口令即刻失效 --  alter user 使用者名稱 password expire(登陸成功即修改密碼)         刪除使用者:        drop user 使用者名稱 [CasCade]        CasCade表示刪除使用者所有對象                 樣本:        drop user abc cascade;
一個完整的樣本:
sqlplus sys/sys as sysdba;
SQL> create user zhang identified by zhang default tablespace users 
temporary tablespace temp quota 100M on users;
SQL> create role myrole;
SQL> grant create session to myrole;
SQL> grant create table to myrole;
SQL> grant myrole to zhang;

sqlplus zhang/zhang
SQL> create table teacher(id int,name varchar(10));
SQL> show user;

  

編輯器載入中...

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.