(
)SQL*PLUS編程用戶的規范
·存儲結構的規范
考慮到用SQL*PLUS編程可實現各行各業
各公司
各部門多種多樣的應用需求
我們的SQL*PLUS編程用戶也應該朝這個方向規范:不同種類的應用必須有不同的用戶;不同種類的應用必須有不同的存儲位置
包括物理文件
缺省表空間
臨時表空間的創建和規劃:當准備編寫某一較大規模(從ORACLE數據量和面向用戶量考慮)應用程序時
首先應該創建一個邏輯的存儲位置
表空間
同時定義物理文件的存放路徑和所占硬盤的大小
①
物理文件缺省的存放路徑在/oracle_home/dbs下
在命令行下用UNIX指令df
k 可查看硬盤資源分區的使用情況
如果oracle_home使用率達
‰以上
而且有一個或多個較為空閒的硬盤資源分區可以利用
我們最好把物理文件缺省的存放路徑改到較為空閒的硬盤資源分區路徑下
在此路徑下我們可以這樣規劃資源物理文件的存儲:
xxx表空間
xxx行業/ xxx公司/ xxx 部門/ xxx 服務
dbf
DEMO表空間
default_datafile_home
/col /elec/sys
/demo
dbf
default_datafile_home
/col /elec/sys
/demo
dbf
公司系統四部摹擬演示系統物理文件
HUMAN表空間
default_datafile_home
/col/elec/human/human
dbf
公司人事部人事管理系統物理文件
BOOK表空間
default_datafile_home
/col/elec/book/book
dbf
公司資料室圖書管理系統物理文件
QUESTION表空間
default_datafile_home
/col/elec/client/question
dbf
公司客戶服務部問題庫系統物理文件
PC表空間
default_datafile_home
/col/chaoxun/client/pc
dbf
公司PC機售後服務系統物理文件
……表空間
default_datafile_home
/……………………………
等等
說明:其中default_datafile_home
指oracle_home/dbs;
default_datafile_home
指較為空閒的硬盤資源分區路徑
②
物理文件的大小根據應用系統的數據量
數據對象
程序包的多少來定
一般用於摹擬演示的小系統
表空間初始的物理文件為
M即能滿足要求
如果信息量滿
還可以增加物理文件
擴充表空間(每次擴充大小也可暫定為
M);一般實際運行的應用系統可適當增加表空間初始的物理文件大小
但也不要一次分配太大(因為不易回收空間
卻易擴充空間)
這也需要根據具體情況具體分析:信息量大
需長時間保存的應用在條件允許情況下
表空間可以大到幾百M甚至上G;信息量小
短期經常刷新的應用
表空間可以控制在
M以下
③
表空間的名稱應該采用同系統應用相似的英文字符或字符縮寫
表空間所對應的一個或多個物理文件名也應有相關性
不同用戶所處的缺省表空間不同
存儲的信息就不能互相訪問
這比把所有用戶信息都儲存在系統表空間
安全性大大提高了
如果用ORACLE WEB SERVER管理端口創建的用戶
其缺省和臨時表空間一定是系統表空間
DBA切記要改變用戶的缺省表空間
臨時表空間存放臨時數據段
處理一些排序
合並等中間操作
根據實際應用的需求可以把它們放在專門創建的表空間裡;如果系統表空間大
也可以把它們放在系統表空間
用戶創建的數據索引最好和數據文件分開存放在不同表空間
以減少數據爭用和提高響應速度
·密碼和用戶名的規范
有相當數量的ORACLE用戶名和密碼一致
這是個很不安全的因素
我們建議ORACLE用戶名和密碼一定不要一樣
密碼最好在五
六位字符以上
不同用戶間不應該使用相同的密碼
用戶名的定義可根據實際應用的英文名來設
而依據編程人員的姓名定義的用戶名實際上不規范
可在日後的工作中結合上述有關存儲結構規范的說明逐步改進
(
)特殊要求用戶的規范
在ORACLE數據庫使用過程中
還會遇到一些有特殊要求的用戶:非編程人員需要對某個表有查詢
增加
刪除
修改的權利
DBA應創建一個這樣的用戶
先確定用戶名和密碼
再規定相關應用所在缺省表空間(包含某個表)和臨時表空間
最後TABLE屬主給其授權:賦予CONNECT角色SELECT
INSERT
DELETE
UPDATE ON THE TABLE的對象級權限
這可根據實際需求自由取捨
舉例:●給新用戶授於對象級權限(命令行方式):
假設新用戶NEW
需要有查詢
刪除
修改DCD用戶的表EMP
%svrmgrl
SVRMGR>connect internal; 以系統管理員登錄
SVRMGR>create user new
identified by new
default tablespace app;
SVRMGR>connect dcd/dcdpwd; 以dcd用戶登錄
SVRMGR>grant connect to new
;
SVRMGR>grant select on emp to new
;
SVRMGR>grant delete on emp to new
;
SVRMGR>grant update on emp to new
;
說了這麼多關於用戶的問題
那麼接下來我們就詳細得說一下關於密碼文件的使用以及維護
在Oracle數據庫系統中
用戶如果要以特權用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle數據庫可以有兩種身份驗證的方法:即使用與操作系統集成的身份驗證或使用Oracle數據庫的密碼文件進行身份驗證
因此
管理好密碼文件
對於控制授權用戶從遠端或本機登錄Oracle數據庫系統
執行數據庫管理工作
具有重要的意義
Oracle數據庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令
它一般存放在ORACLE_HOME\DATABASE目錄下
·密碼文件的創建:
在使用Oracle Instance Manager創建一數據庫實例的時侯
在ORACLE_HOME\DATABASE目錄下還自動創建了一個與之對應的密碼文件
文件名為PWDSID
ORA
其中SID代表相應的Oracle數據庫系統標識符
此密碼文件是進行初始數據庫管理工作的基礎
在此之後
管理員也可以根據需要
使用工具ORAPWD
EXE手工創建密碼文件
命令格式如下:
C:\ >ORAPWD FILE=< FILENAME > PASSWORD =< PASSWORD > ENTRIES=< MAX_USERS >
各命令參數的含義為:
FILENAME:密碼文件名;
PASSWORD:設置INTERNAL/SYS帳號的口令;
MAX_USERS:密碼文件中可以存放的最大用戶數
對應於允許以SYSDBA/SYSOPER權限登錄數據庫的最大用戶數
由於在以後的維護中
若用戶數超出了此限制
則需要重建密碼文件
所以此參數可以根據需要設置得大一些
有了密碼文件之後
需要設置初始化參數REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態
·設置初始化參數REMOTE_LOGIN_PASSWORDFILE:
在Oracle數據庫實例的初始化參數文件中
此參數控制著密碼文件的使用及其狀態
它可以有以下幾個選項:
NONE:指示Oracle系統不使用密碼文件
特權用戶的登錄通過操作系統進行身份驗證;
EXCLUSIVE:指示只有一個數據庫實例可以使用此密碼文件
只有在此設置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息
即允許將系統權限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶
SHARED:指示可有多個數據庫實例可以使用此密碼文件
在此設置下只有INTERNAL/SYS帳號能被密碼文件識別
即使文件中存有其他用戶的信息
也不允許他們以SYSOPER/SYSDBA的權限登錄
此設置為缺省值
在REMOTE_LOGIN_PASSWORDFILE參數設置為EXCLUSIVE
SHARED情況下
Oracle系統搜索密碼文件的次序為:在系統注冊庫中查找ORA_SID_PWFILE參數值(它為密碼文件的全路徑名);若未找到
則查找ORA_PWFILE參數值;若仍未找到
則使用缺省值ORACLE_HOME\DATABASE\PWDSID
ORA;其中的SID代表相應的Oracle數據庫系統標識符
·向密碼文件中增加
刪除用戶:
當初始化參數REMOTE_LOGIN_PASSWORDFILE設置為EXCLUSIVE時
系統允許除INTERNAL/SYS以外的其他用戶以管理員身份從遠端或本機登錄到Oracle數據庫系統
執行數據庫管理工作;這些用戶名必須存在於密碼文件中
系統才能識別他們
由於不管是在創建數據庫實例時自動創建的密碼文件
還是使用工具ORAPWD
EXE手工創建的密碼文件
都只包含INTERNAL/SYS用戶的信息;為此
在實際操作中
可能需要向密碼文件添加或刪除其他用戶帳號
由於僅被授予SYSOPER/SYSDBA系統權限的用戶才存在於密碼文件中
所以當向某一用戶授予或收回SYSOPER/SYSDBA系統權限時
他們的帳號也將相應地被加入到密碼文件或從密碼文件中刪除
由此
向密碼文件中增加或刪除某一用戶
實際上也就是對某一用戶授予或收回SYSOPER/SYSDBA系統權限
要進行此項授權操作
需使用SYSDBA權限(或INTERNAL帳號)連入數據庫
且初始化參數REMOTE_LOGIN_PASSWORDFILE的設置必須為EXCLUSIVE
具體操作步驟如下:
創建相應的密碼文件;
設置初始化參數REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;
使用SYSDBA權限登錄: CONNECT SYS/internal_user_passsword AS SYSDBA;
啟動數據庫實例並打開數據庫;
創建相應用戶帳號
對其授權(包括SYSOPER和SYSDBA): 授予權限:GRANT SYSDBA TO user_name;
收回權限:REVOKE SYSDBA FROM user_name;
現在這些用戶可以以管理員身份登錄數據庫系統了;
·使用密碼文件登錄:
有了密碼文件後
用戶就可以使用密碼文件以SYSOPER/SY
From:http://tw.wingwit.com/Article/program/Oracle/201311/17833.html