애플리케이션 정보

이 페이지의 스크립트 콘텐츠는 탐색 용도로만 사용되며 어떤 방식으로든 콘텐츠를 변경하지 않습니다.

응용 프로그램의 용도, 구조 및 이름 지정 규약은 다음과 같습니다.

애플리케이션의 목적

이 애플리케이션은 회사에서 두 종류의 사용자를 대상으로 합니다.

일반 사용자는 다음 태스크를 수행할 수 있습니다.

응용 프로그램 관리자는 다음 작업을 수행할 수 있습니다.

애플리케이션 구조

응용 프로그램은 다음 스키마 객체 및 스키마를 사용합니다.

응용 프로그램의 스키마 객체

응용 프로그램은 다음 스키마 객체로 구성됩니다.

참조:

응용 프로그램의 스키마

보안을 위해 응용 프로그램은 다음 5개의 스키마(또는 사용자)를 사용하며, 각 스키마에는 필요한 권한 있습니다.

사용자 app_userapp_admin_user 대신 응용 프로그램에 아무것도 소유하지 않은 스키마가 하나만 있고 employees_pkgadmin_pkg 패키지를 모두 실행할 수 있다고 가정합니다. 이 스키마에 대한 연결 풀은 일반 사용자와 응용 프로그램 관리자 모두에게 충분히 커야 합니다. employees_pkg 패키지에 SQL 주입 버그가 있는 경우 해당 버그를 악용한 일반 사용자는 admin_pkg 패키지에 액세스할 수 있습니다.

app_data, app_codeapp_admin 스키마 대신 응용 프로그램에 패키지를 포함한 모든 스키마 객체를 소유한 스키마가 하나만 있다고 가정합니다. 그러면 패키지는 테이블에 대한 모든 권한을 가지며 이는 불필요하고 바람직하지 않습니다.

예를 들어, 감사 추적 테이블 AUDIT_TRAIL가 있다고 가정합니다. employees_pkg 패키지의 개발자가 AUDIT_TRAIL 테이블에는 쓸 수 있지만 읽거나 변경할 수는 없습니다. admin_pkg 패키지의 개발자가 AUDIT_TRAIL 테이블을 읽고 쓸 수는 있지만 변경할 수는 없습니다. AUDIT_TRAIL 테이블과 employees_pkgadmin_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;

참조:

응용 프로그램의 이름 지정 규칙

응용 프로그램에서는 이러한 이름 지정 규칙을 사용합니다.

항목 이름
테이블 테이블 번호
테이블 번호에 대한 에디션 보기 테이블
에디션 보기 테이블에서 트리거

table_{a|b}event[_fer] 설명:

  • a는 AFTER 트리거를 식별합니다.

  • b는 BEFORE 트리거를 식별합니다.

  • fer는 FOR EACH ROW 트리거를 식별합니다.

  • event는 트리거를 실행하는 이벤트를 식별합니다. 예: INSERT의 경우 i, INSERT의 경우 iu, UPDATE의 경우 d, DELETE의 경우 d

table#의 PRIMARY KEY 제약 조건 table_pk
table#.column의 NOT NULL 제약 조건 table_column_not_null1
table#.column의 UNIQUE 제약 조건 table_column_unique1
table#.column에 대한 CHECK 제약 조건 table_column_check1
table1#.column에서 table2#.column에 대한 REF 제약 조건 테이블1_to_테이블2_fk1
table1#.column1에서 table2#.column2로의 REF 제약 조건 table1_col1table2_col2_fk1 2
table#의 시퀀스 테이블_순서
매개변수 이름입니다 p_이름
로컬 변수 이름입니다. l_name(이름)
  1. table, table1, table2는 emp for employees, dept for departments, job_history의 job_hist로 축약되어 있습니다. 2 3 4 5

  2. col1col2는 열 이름 column1column2의 약어입니다. 제약 조건 이름은 30자를 초과할 수 없음.