Oracle學習筆記 02 許可權管理

2021-08-19 21:54:27 字數 3544 閱讀 2059

linesize        設定每行顯示的字元。預設 80 個。 用法 : set linesize 需要顯示的字元數

pagesize      設定每頁顯示的條目數。預設 14 個。14 個過後會重新列印乙個表頭,然後顯示剩餘條目。用法同上。

建立使用者  

命令:create user 使用者名稱 identified by 密碼

說明:一般是具有 dba(資料庫管理員) 許可權的使用者才可以操作。如sys 、system

oracle 資料庫要求使用者密碼不能以數字開頭

新建立的使用者是沒有任何許可權的,需要 dba 使用者給該使用者授權,oracle中的大小許可權擁有一百多種。

分配許可權:

grant 許可權名 to 使用者名稱。

例如:grant create session to user001     -- create session 許可權僅僅可以登入,無法進行其他操作

許可權分 系統許可權(與資料庫管理相關的許可權)

create session   登入許可權

create table       建表許可權

create view        建立檢視許可權

和 物件許可權(與使用者運算元據物件相關的許可權)

update                修改表資料的許可權

insert                   插入表資料的許可權

delete                  刪除表資料的許可權

select                   查詢表資料的許可權

角色分 預定義角色(系統定義好的一組常用許可權集合)

dba                     包含大多數許可權。如增刪改查等。可以對其它使用者的表進行操作

connect              包含較少許可權,可以登入

resource             包含一般的許可權,但不能檢視其它使用者的表空間

和 自定義角色(自定義的一組許可權集合)

role1                    自行將指定的許可權分配給自定義的角色

**許可權:

revoke 許可權名 from 使用者名稱。

細節:上命令後可以繼續  -- 表空間(即使用者建立的表所存在的空間,指向乙個具體的資料檔案)

default tablespace users                -- 該使用者預設的表空間     users

temporay tablespace temp            -- 該使用者臨時的表空間     temp

quota 3m on users;                      -- 該使用者表空間的大小限制  3m

刪除使用者

命令:drop user 使用者名稱 [cascade]        

說明:當要刪除的使用者已經建立過資料物件時,刪除該使用者時需要在命令後面加上 cascade,表示刪除該使用者的同時將該使用者建立的資料物件一起刪除。

如果不想使用該使用者了,但依然想使用該使用者建立的資料物件時。就不能使用drop刪除該使用者,而應該是凍結使用者。

在同乙個db例項中,多個使用者之間不能訪問其他使用者的表。

原因:當乙個使用者建立號好後,如果該使用者建立了任意乙個資料物件,這時,dbms 就會建立乙個對應的方案與該使用者對應,並且該方案的名字與使用者名稱一致。   

如果想訪問其他使用者的表。如a使用者想訪問b使用者的table。

則需要登入b使用者或者dba許可權的使用者,賦予a使用者訪問的許可權。(指定允許其他人對自己的表進行什麼操作,甚至可以指定對哪張表的哪些字段進行何種操作)

語法:grant all[select | delete | insert | update] on table名  to  a使用者        -- 其中all表示所有許可權

許可權指定後,即可操作其他使用者的表,但需要注意的是,表名需要輸入完整名稱,即方案名.表名。

profile管理使用者口令

profile 是口令限制,資源限制的命令集合,當建立資料庫的時候,oracle會自動建立名稱為default的profile,當建立的使用者沒有指定profile選項,那oracle就會將default分配給使用者。

profile的主要作用:

限制乙個賬戶登入時最多可以輸入密碼的次數

限制乙個賬戶連續多次輸錯密碼後鎖定賬戶以及鎖定時間

語法:建立profile檔案

---sql>   create profile 檔名 limit failed_login_attempts 允許輸錯密碼的次數 password_lock_time 鎖定的天數;

為使用者指定profile檔案

---sql>   alter user 使用者名稱 profile 檔名;

給使用者解鎖:

語法:---sql>   alter user  使用者名稱 account unlock;

終止口令:為了讓使用者定期修改密碼,該命令需要dba身份操作

語法:---sql>   create profile 檔名 limit password_lifr_time 30  password_grace_time 2;

要求使用者每 30 天修改一次密碼,寬限 2 天

---sql>   alter user 使用者名稱 profile 檔名;

oracle的登入認證       

乙個很奇怪的現象

sql> show user

user 為 "scott"

sql> conn ***/*** as sysdba

已連線。

sql> show user

user 為 "sys"

輸入任意的使用者名稱和密碼 as sysdba   登入的是sys使用者 

原因:這裡oracle啟動了作業系統認證。

as sysdba 語句 是 特權使用者登入的標誌, 即作業系統認證。前面的使用者名稱和密碼自動忽略,一旦登入成功,自動切換為sys使用者                                

我的電腦(右) -- 管理 -- 本地使用者和組  -- 組   ---- 會發現ora_dba  即oracle管理員組  -- 開啟這個組  ---- 發現當前作業系統登入的賬戶 administrator 也處於該組中。

sqlnet.authentication_services= (nts)              -- nts  基於作業系統驗證

sqlnet.authentication_services= (none)          -- none 基於oracle驗證

sqlnet.authentication_services= (nts, none)  -- 兩種驗證方式共存

如果丟失管理員密碼?

恢復辦法:刪除原有的密碼檔案,生成乙個新的密碼檔案

步驟:刪除該檔案(建議備份)

生成新的密碼檔案。

在dos控制台下輸入命令:

orapwd file=原來的密碼檔案全路徑\密碼檔名.ora password=新密碼 entries=10;

新密碼檔名一定要與原來密碼檔名相同

其中entries是允許的特權使用者個數

重啟oracle資料庫例項即可生效

這個修改的是最高許可權使用者sys的密碼

oracle學習筆記02

一 cbo下優化器模式的選擇 而對於一些分頁操作比較多的 類資料庫,設定成first rows會更好一些。如果在報表系統中需要用到分頁查詢,可以在sql裡通過hints的方式來將優化模式轉換成first rows,這樣就可以大大的提高資料的處理速度。例如 select from select fir...

Oracle學習筆記 二 許可權管理

這些天把oracle許可權管理這一塊看了好多遍,發現oracle果然是個龐大的系統,許可權管理這一塊就涉及到很多東西,就這一篇部落格也是改了又改,重構了好幾遍,準備一直寫到把許可權管理搞通了.哇 一 系統的預設使用者 二 登陸 三 管理使用者 四,授予許可權 1 預設的普通使用者scott預設未解鎖...

oracle學習筆記三 許可權管理

通過將近1年對oracle資料庫的接觸,從陌生到現在的略微熟悉,感覺到這一段路走的還是蠻崎嶇的。如果沒有通過系統的學習,想要比較全面的掌握oracle是比較困難的,所以我現在也花比較大的精力去寫一些關於oracle的管理心得,希望對朋友們有著確切的幫助。但是限於個人的能力有限,所以當中難免出現一些錯...