關於應用程式
此頁面上的命令檔內容僅適用於瀏覽用途,而且無法利用任何方式來更改內容。
應用程式具有下列目的、結構和命名慣例。
應用程式的用途
此應用程式適用於公司中的兩種使用者。
-
一般使用者 (員工經理)
-
Application administrators - 應用程式管理員
一般使用者可以執行下列作業:
-
取得指定部門的員工
-
取得指定員工的職務歷史記錄
-
顯示指定員工的一般資訊 (姓名、部門、職務、經理人員、薪資等等)
-
變更指定員工的薪資
-
變更指定員工的工作
應用程式管理員可以執行下列工作:
-
變更現有職務的 ID、職稱或薪資範圍
-
新增新工作
-
變更現有部門的 ID、姓名或經理人員。
-
新增部門
應用程式的結構
應用程式會使用下列綱要物件和綱要。
應用程式的綱要物件
應用程式由下列綱要物件組成:
-
四個表格,用來儲存下列各項的資料:
-
工作
-
Departments
-
員工
-
員工的職務歷史記錄
-
-
四個版本檢視,其中涵蓋表格,可讓您使用以版本為基礎的重新定義 (EBR) 來升級使用中的已完成應用程式
-
強制執行業務規則的兩個觸發器
-
為新部門和新員工產生唯一主索引鍵的兩個順序
-
兩個套裝軟體。
-
employees_pkg,適用於一般使用者的應用程式介面 (API)
-
admin_pkg,應用程式管理員的 API
一般使用者和應用程式管理員只能透過其 API 存取應用程式。因此,他們只能透過呼叫配套子程式來變更資料。
-
另請參閱:
-
如需有關綱要物件的資訊,請參閱關於 Oracle AI Database
-
Oracle AI Database Development Guide,瞭解 EBR 的相關資訊
應用程式的綱要
為了安全起見,應用程式會使用下列五個綱要 (或使用者),每個綱要只具有其所需的權限。
-
app_data綱要擁有套裝程式以外的所有綱要物件,並以hr範例綱要中表格的資料載入表格。建立套裝程式的開發人員不會在此綱要中運作。因此,它們無法不小心更改或刪除應用程式綱要物件。
-
僅擁有套裝程式
employees_pkg的app_code綱要。employees_pkg套裝程式的開發人員可在此綱要中運作。 -
僅擁有套裝程式
admin_pkg的app_admin綱要。admin_pkg套裝程式的開發人員可在此綱要中運作。 -
app_user使用者 (一般應用程式使用者,不擁有任何項目而且只能執行套裝程式employees_pkg的使用者)。中間層應用程式伺服器會以
app_user使用者身分連線至連線集區中的資料庫。例如,如果此綱要受到 SQL 資料隱碼錯誤的影響,攻擊者只能查看和變更employees_pkg套裝程式子程式所能看見和變更的內容。攻擊者無法刪除表格、呈報權限、建立或更改綱要物件或其他項目。 -
app_admin_user使用者 (不擁有任何項目且只能執行admin_pkg和employees_pkg套裝程式的應用程式管理員)。此綱要的連線集區非常小,只有授權的使用者才能存取它。如果此綱要受到危害,攻擊者只能查看和變更
admin_pkg和employees_pkg套裝程式子程式,讓它看到和變更。
假設應用程式沒有擁有任何結構,且可以同時執行 employees_pkg 和 admin_pkg 套裝軟體,而不是使用者 app_user 和 app_admin_user。對一般使用者和應用程式管理員而言,此綱要的連線集區必須夠大。如果 employees_pkg 套裝程式中發生 SQL 資料隱碼錯誤,則利用該錯誤的一般使用者可以存取 admin_pkg 套裝程式。
假設應用程式只有一個擁有所有綱要物件的綱要 (包括套裝程式),而不是 app_data、app_code 和 app_admin 綱要。套裝程式接著會擁有表格的所有權限,這將會是不必要和不希望的。
例如,假設您有一個稽核歷程檔表格 AUDIT_TRAIL。您希望 employees_pkg 套裝軟體的開發人員能夠寫入 AUDIT_TRAIL 表格,但無法讀取或變更。您希望 admin_pkg 套裝軟體的開發人員能夠讀取 AUDIT_TRAIL 表格並寫入該表格,但無法變更。如果 AUDIT_TRAIL 表格和 employees_pkg 和 admin_pkg 套裝程式屬於相同的綱要,則兩個套裝程式的開發人員擁有 AUDIT_TRAIL 表格的所有權限。不過,如果 AUDIT_TRAIL 表格屬於 app_data 綱要,則 employees_pkg 套裝程式屬於 app_code 綱要,而 admin_pkg 套裝程式屬於 app_admin 綱要,則您可以以 app_data 綱要的身分連線至資料庫,然後執行下列命令:
GRANT INSERT ON AUDIT_TRAIL TO app_code;
GRANT INSERT, SELECT ON AUDIT_TRAIL TO app_admin;
另請參閱:
- 關於 Oracle AI Database ,瞭解綱要的相關資訊
- 關於範例綱要 HR ,瞭解範例綱要
HR的相關資訊 - 建議的安全措施
應用程式中的命名慣例
應用程式會使用這些命名慣例。
| 項目 | 名稱 |
|---|---|
| 表格 | 表格號碼 |
| 表格編號的版本檢視 | 表格 |
| 版本檢視表格觸發程式 | table _{a|b} 事件 [_fer] 其中:
|
| 表格 # 中的 PRIMARY KEY 限制條件 | 表格 _pk |
| table #. column 的 NOT NULL 限制條件 | table_column _not_null 1 |
| table #. column 上的 UNIQUE 限制條件 | table_column _unique 1 |
| table #. column 上的 CHECK 限制條件 | table_column _check 1 |
| table1 #. column 到 table2 #. column 上的 REF 限制條件 | table1_to_ table2 _fk 1 |
| table1 #. column1 與 table2 #. column2 上的 REF 限制條件 | table1_col1 到 table2_col2 _fk 1 2 |
| 表格號碼的順序 | 表格順序 |
| 參數名稱 | 名稱 (_N) |
| 區域變數名稱 | l_ 名稱 |