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的管理心得,希望對朋友們有著確切的幫助。但是限於個人的能力有限,所以當中難免出現一些錯...