1、oracle默認用戶及密碼如下
用戶名 | 密碼 | 以何種身份登錄 | 備註 |
---|---|---|---|
sys | change_on_install | SYSDBA 或 SYSOPER | 不能以 NORMAL 登錄,爲默認的系統管理員身份 |
system | manager | SYSDBA 或 NORMAL | 不能以 SYSOPER 登錄,可作爲默認的系統管理員 |
dbsnmp | dbsnmp | SYSDBA 或 NORMAL | 複製管理員 |
scott | tiger | NORMAL | 普通用戶 |
注意:
(1)直接用system登錄,報錯ORA-01017: invalid username/password; logon denied
解決辦法:需加上登錄身份。
(2)直接登錄scott,會報錯ORA-28000: the account is locked
解決辦法:
Oracle數據庫默認Scott用戶是鎖定的,需要登錄system用戶,解除scott用戶鎖定狀態。先用系統用戶sys登入後輸入 alter user scott account unlock;這樣就可以解除scott用戶的鎖定狀態,重新啓動sqlplus,就可以利用scott用戶登入了。
2、連接用戶
connect(conn) 【用戶名】/【密碼】
3、查看當前用戶
SQL> show user;
USER 爲 "SCOTT"
顯示出當前的用戶名
4、退出
exit
5、修改密碼
修改當前登錄用戶的密碼,直接使用
password (passw)
如果是要修改其他用戶的密碼,必須使用具有dba權限的賬號,如system,或是具備alter user權限的賬號。
alter user 【用戶名】 identified by 【新密碼】
6、刪除用戶
drop user 【用戶名】 【cascade】
cascade:當用戶已經建表,要刪除該用戶時,加上cascade,則會級聯將用戶及用戶創建的表都刪除。
7、創建用戶
創建用戶就用create命令即可,但是需要使用dba權限的賬號或是具備create user權限的賬號。
create user 【用戶名】 identified by 【密碼】;
7.1 用戶角色
新創建的用戶是沒有任何操作權限的,當你登錄這個新用戶時,會提示以下內容
SQL> create user zsy identified by elephant;
用戶已創建。
SQL> conn zsy/elephant;
ERROR:
ORA-01045: user ZSY lacks CREATE SESSION privilege; logon denied
警告: 您不再連接到 ORACLE。
SQL> show user;
USER 爲 ""
此時需要給新用戶賦予權限或角色。
先說權限。Oracle有兩類權限。① 系統權限:用戶對數據庫訪問和操作的權限,如建庫、建表、建索引等。② 對象權限:用戶對其他用戶的數據對象訪問的權限,(數據對象爲表、視圖、過程、觸發器等),例如select、insert、update、delete、all、create index權限。
使用下面的命令來給新用戶賦予權限:
grant create session to [用戶名];//授予用戶創建session的權限,即登陸權限
grant unlimited tablespace to [用戶名];//授予用戶使用表空間的權限
grant create table to [用戶名];//授予用戶創建表的權限
grante drop table to [用戶名];//授予用戶刪除表的權限
grant insert table to [用戶名];//授予用戶插入表的權限
grant update table to [用戶名];//授予用戶修改表的權限
grant all to public;//授予所有權限(all)給所有用戶(public)
grant select on [表名] to [其他用戶名];//授予用戶查看指定表(其他用戶的表)的權限
grant select on tablename to [用戶名];//授予用戶查看指定表的權限
grant drop on tablename to [用戶名];//授予用戶刪除表的權限
grant insert on tablename to [用戶名];//授予用戶插入的權限
grant update on tablename to [用戶名];//授予用戶修改表的權限
grant insert on tablename to [用戶名];//授予對指定表插入權限
grant update on tablename to [用戶名];//授予對指定表修改權限
grant alert all table to [用戶名];//授予用戶alert所有表的權限
grant select on [表名] to [用戶名] with grant option;//with grant option的意思是被賦予該權限的用戶還具備了賦予其他用戶該權限的權限,即權限的傳遞。若最初的用戶被刪除,則之後被賦予權限的用戶將被移除該權限。
撤銷權限:
revoke select on [表名] from [用戶名];//select就是之前賦予用戶的權限
另外,oracle也有一個角色的概念。角色是oracle事先定義的,該角色會具備一些權限,類似於將權限批量授權給了這個角色。角色分兩種。① 自定義角色:用戶自己定義一個角色。② 預定義角色:在安裝數據庫時已經存在,例如connect角色、dba角色、resource角色(可以讓用戶在任何表空間建表)。在創建用戶的時候,可以直接讓某個用戶成爲某個角色,從而具備這個角色具備的所有權限。
可以這樣理解角色。角色就相當於人類社會的職位,比如警察、法官。這些職位是在一個小朋友出生的時候就存在的,定義好了的,比如警察的權限是強制執行、拘留違法人員等,那麼當一個人被任命爲警察後,他就直接具備這些權限了。類似的,當一個oracle被指定成爲一個角色後,也就具備這個角色擁有的權限了。
oracle對於角色、權限的管理是oracle一個很優秀的地方。
授予用戶角色:
grant connect to [用戶名];//connect是oracle的角色之一
創建、刪除角色:
create role [角色名];//創建角色
grant create session to [角色名];//將創建session的權限授予myrole
drop role [角色名];//刪除角色
7.2 用戶口令管理
分爲兩步:① 制定規則;② 將規則賦予給用戶。
1、鎖定賬戶
可以指定用戶登錄時最多可以輸入密碼的次數,也可以指定用戶鎖定的時間。需要用dba權限的賬號去執行。
① 創建profile文件,即制定規則
create profile [profile名] limit failed_login_attempts [m] passwork_lock_time [n];
其中m表示鎖定多少天,整數;n表示最多輸入幾次,整數。
② 將規則賦給某個用戶
alter user [用戶名] profile [profile名];
③ 給用戶解鎖
alter user [用戶名] account unlock;
2、讓用戶定期來修改密碼,終止口令
① 創建規則文件
create profile [profile名] limit password_life_time [m] password_grace_time [n];
m:每隔幾天修改密碼,整數。n:寬限期爲幾天,整數。
② 將規則賦給某個用戶
alter user [用戶名] profile [profile名];
3、口令歷史管理
規定用戶在修改密碼的時候,不能使用以前使用過的密碼。可使用口令歷史,這樣oracle就會把口令修改的信息存放在數據字段中,這樣當用戶修改密碼時,oracle就會對新舊密碼進行比較,當凡發現舊密碼和新密碼一樣時,就提示用戶重新輸入密碼。
① 創建規則文件
create profile password_history limit password_life_time [m] password_grace_time [n] password_reuse_time [k];
password_reuse_time指定口令可重用時間,k天之後纔可以重用。
② 將規則賦給某個用戶
alter user [用戶名] profile [profile名];
刪除profile:
drop profile [profile名] 【cascade】;//刪除之後被賦予規則的用戶將不再具備該規則。cascade就是級聯刪除。