1.1 3個默認用戶
Oracle 9i
sys change_on_install [as sysdba]--sqlplus /as sysdba
system manager
scott triger
oracle 10g以上
sys 安裝的時候設置. [as sysdba]
system 安裝的時候設置.
scott triger 默認為鎖定。應該解鎖(ALTER USER ACCOUNT LOCK/UNLOCK )
sys :oracle 網絡管理員。全局的管理員
system:普通管理員
scott :普通用戶
oracle使用條件:啟用監聽(lsnrctl start),啟用數據庫實例(oradin -startup -sid orcl)
1.2 創建用戶
登陸SYS:sqlplus /as sysdba conn lisi/lisi
show user(sqlplus) whoami(Linux)
create(alter) user lisi identified by lisi;
1.3 分配權限
關鍵字:grant XX to user;
grant create session to lisi;
grant create table to lisi;
grant unlimited tablespace to lisi;
擁有create table 權限,就擁有了select,insert,update,delete table和drop table權限
自己創建的表就擁有了這張表的所有權限
1.4 撤銷權限
關鍵字:revoke XX from user;
revoke create session from lisi;
revoke create table from lisi;
revoke unlimited tablespace from lisi;
1.5 查看系統權限的數據字典
SELECT * FROM user_sys_privs;
2. 對象權限
2.1 概念:訪問其他用戶創建的對象,每個對象都屬於某壹個用戶。其他對象訪問,需要賦權限
2.2 兩個用戶屬於兩個不同的事務。壹個用戶下沒有COMMIT,另壹個用戶不能訪問,COMMIT類似存盤的概念
2.3 授權對象權限
關鍵字:grant xx on table to user;
例子 :grant select,insert,update,delete on table to lisi;
授權所有權限:grant all on table to user(public);
2.4 撤銷權限
關鍵字:revoke XX on table from user(public);
例子 :revoke all on table from lisi(public);
2.5 誰擁有權限,誰可以授權
2.6 查看對象權限的數據字典
SELECT * FROM user_tab_privs;
2.7 顯示格式
SET linesize 400
dbms_output.disable;
插入的時候會將表鎖定,表級別的鎖
2.8 對table的列的權限控制
授權:grant xx(column) on table to user;
撤銷權限:revoke xx(column) on table from user;
insert,update可以控制到列,select,delete不行
數據字典:select * from user_col_privs;
2.9 查詢的概念
DDL(數據定義語言),DML(數據操縱語言),DCL(授權和撤銷權限)。只有DML語言有TRANSACTION的控制
3. 權限傳遞
3.1系統權限的傳遞
默認 :權限可以使用,但是不能傳遞(9i和10g不壹樣)
權限傳遞:grant XX to user with admin option
撤銷傳遞:源頭斷了,就不能傳遞了
3.2對象權限的傳遞
默認 :權限可以使用,不能傳遞
權限傳遞:grant XX on table to user with grant option;
撤銷傳遞:源頭斷了,就不能傳遞了(9i和10g不壹樣)
4. 角色管理
4.1 概念:角色就是權限的集合
4.2 創建和role:create role XX; drop role XX;
4.3 權限放在role:grant XX to role;
4.4 權限授權給user:grant XX to user;
4.5 撤銷權限: revoke XX from user或者刪除角色
4.6 使用範圍:有限權限太高,不能直接賦予role,只能賦予user,例如:UNLIMITED TABLESPACE
4.7 create table 和create any table的區別
create table:只能給自己創建表
create any table:不僅可以給自己創建表,還可以給任何用戶創建表
4.8 只有alter any table和drop any table權限
擁有create table,就擁有了alter table 和drop table
4.9 角色不屬於任意壹個用戶。是***用的。
4.10 查看role的數據字典:
select * from dba_roles; --查詢當前所有ROLE列表,包括自定義
select * from dba_role_privs; --查詢某用戶的ROLE權限
select * from ROLE_SYS_PRIVS; --查詢當前用戶的ROLE,及其所包含的系統權限
5. 三種登陸方式
5.1 普通用戶密碼修改
用SYS用戶登錄,修改密碼:
命令行:alter user scott identified by tiger;
圖形界面也可以修改:會轉化為SQL語句
5.2 SYS(SYSDAA,SYSOPER)用戶密碼丟了。不能直接修改
5.3 oracle數據庫的三種驗證機制
a.操作系統驗證
b.密碼文件驗證
c.數據庫的驗證
壹般的oracle用戶 :使用數據庫的驗證,先啟動數據庫,然後再驗證
SYS(SYSDAA,SYSOPER)用戶:操作系統驗證和密碼文件的驗證
5.4 oracle的啟動過程
5.4.1.linux下oracle啟動過程:
a.lsnrctl start(啟用監聽)
b.sqlpuls /(sys/oracle) as sysdba
c.startup 啟動實例
先鏈接監聽,再鏈接數據庫實例.linux有嚴格的啟動數據
監聽:為了區分SYS(SYSDAA,SYSOPER)用戶和壹般的用戶
10g以後的用法:sqlplus /(sys/oracle) as sysdba
10g前的用法 :sqlplus /nolog;conn sys/oracle as sysdba
5.4.2 windows下oracle的啟動過程
lnsrctl start
oradin -start -sid orcl
5.5 默認是操作系統驗證,沒有驗證通過在進行密碼文件的驗證
計算機管理:組:ora_dba
sqlplus / as sysdba(操作系統的驗證)
sqlpuls sys/oracle as sysdba(密碼文件的驗證)
5.6 實際應用中。壹般把操作系統驗證取消
5.7 SYS密碼忘記。只能修改密碼文件
備份product\10.2.0\db_2\database下的PWDorcl.ora ora文件
使用命令重新生成密碼文件:PWDorcl.ora ora
命令:
orapwd file=pwdora10g.ora password-sys entries=10(特權用戶) force(whether overwrite)
SYS特權用戶查看數據字典:SELECT v$pwdfile_users(動態性能表);
6. 帳戶管理細節
6.1 創建用戶
CREATE USER 用戶名
IDENTIFIED BY 密碼
DEFAULT TABLESPACE 默認表空間(屬於用戶的TABLE,INDEX,約束)
TEMPORARY TABLESPACE 臨時表空間(主要使用排序.GROUP BY ORDER BY等)
QUOTA(限額) 整數 K|M|LIMITED ON 表空間(QUOTA 50M ON TABLESPACE)
6.2 參考orcle客戶端的圖形界面(限額)。分配了UNLIMITED TABLESPACE分配了,就沒有限額
6.3 圖形界面創建用戶時候。默認給了角色,用戶沒有任何數據。在方案裏面沒有用戶,默認在安全性裏面
6.4 用戶加鎖解鎖和口令失效
命令行:ALTER XX USER ACCOUNT LOCK/UNLOCK;
用戶口令即刻失效:ALTER USER XX PASSWORD EXPIRE;(EBS創建用戶的時候)
6.5 DROP USER XX [CASCADE]
CASCADE:表示刪除用戶所有對象
drop user XX cascade;