Business Unit or Product Name

1,063 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,063
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 데이터베이스가 생성될 때 , System Database Directory file 에 자동적으로 카탈로그 된다 . CATALOG DATABASE 명령어를 이용하여 명시적으로 데이터베이스를 System Database Directory file 에 카탈로그 할 수 있다 . UNCATALOG DATABASE 명령어를 이용하여 명시적으로 데이터베이스를 System Database Directory file 에서 삭제할 수 있다 . Catalog Database 명령어 : 다른 디렉토리에서 전에 삭제되었던 내용을 다시 카탈로그 별명으로 데이터베이스를 카탈로그 할 때 시스템 데이터베이스 하려 할 때 서버시스템에 있는 데이터베이스를 클라이언트 시스템에서 카탈로그 하려 할 때
  • 존재하는 테이블 , 뷰 또는 Alias 와 같진 않다 . 단지 같은 DB 안의 한 테이블을 언급할 수 있다 .
  • REFERENCES 옵션에 컬럼 명을 지정하지 않으면 DEFAULT 로 부모 테이블의 PRIMARY KEY 참조한다 .
  • Business Unit or Product Name

    1. 1. DB2 Admin Workshop <ul><li>2007 International Business Machines Corporation. All rights reserved. </li></ul>
    2. 2. 목차 (Agenda) <ul><li>DB2 UDB 제품 군 </li></ul><ul><li>DB2 시작과 제어센터 사용 (GUIs) </li></ul><ul><li>Instance </li></ul><ul><li>Database </li></ul><ul><li>Table Spaces </li></ul><ul><li>Objects </li></ul><ul><li>Security </li></ul>
    3. 3. <ul><li>DB2 UDB 제품 군 </li></ul>
    4. 4. DB2 Product Family DB2 UDB Everyplace <ul><li>WinCE, Win32 </li></ul><ul><li>PalmOS, QNX </li></ul><ul><li>Linux, Embedded Linux </li></ul><ul><li>Cellvic, Symbian </li></ul><ul><li>J2ME </li></ul>Personal Edition <ul><li>DB2 UDB </li></ul><ul><li>Personal Edition (PE) </li></ul><ul><li>Windows </li></ul><ul><li>Linux </li></ul><ul><li>DB2 UDB </li></ul><ul><li>Workgroup Server Edition (WSE) </li></ul><ul><li>Windows </li></ul><ul><li>Linux </li></ul><ul><li>AIX </li></ul><ul><li>HP-UX </li></ul><ul><li>Solaris </li></ul><ul><li>DB2 UDB </li></ul><ul><li>Enterprise Server Edition (ESE) </li></ul><ul><li>Windows </li></ul><ul><li>Linux </li></ul><ul><li>AIX </li></ul><ul><li>HP-UX </li></ul><ul><li>Solaris </li></ul><ul><li>DB2 UDB for OS/390 </li></ul><ul><li>DB2 for VM, VSE & MVS </li></ul><ul><li>DB2 UDB for AS/400 </li></ul>HOST DRDA ( DB2 Connect ) Personal Edition <ul><li>DB2 UDB </li></ul><ul><li>Express-C </li></ul><ul><li>Windows </li></ul><ul><li>Linux </li></ul>
    5. 5. <ul><li>DB2 UDB 시작과 제어센터 사용 (GUIs) </li></ul>
    6. 6. 메뉴의 종류
    7. 7. 제어 센터 (db2cc) Menu bar Tool bar Contents pane tool bar Control Center Replication Center Satellite Admin Center Command Center Task Center Health Center Journal Development Center License Center Configuration Advisor Tools Settings Help Show/Hide Legend
    8. 8. 제어 센터 (db2cc) - DBM 구성
    9. 9. 제어 센터 (db2cc) - DB 구성
    10. 10. 개발 센터 (db2dc)
    11. 11. 명령 편집기 (db2cmdctr)
    12. 12. 명령 창 / 명령행 처리기 non-interactive mode ( 명령 창 ) db2 connect to sample db2 “select * from syscat.tables” | more interactive mode ( 명령행 처리기 ) db2 db2=> connect to sample db2=> select * from syscat.tables
    13. 13. 정보 센터
    14. 14. <ul><li>Instance </li></ul>
    15. 15. Instance 란 ?
    16. 16. The Database Manager Instance
    17. 17. Instance Administrator <ul><li>db2icrt </li></ul><ul><li>db2ilist </li></ul><ul><li>db2idrop </li></ul>
    18. 18. 관리 서버 (DAS) <ul><li>Administration Server 생성 </li></ul><ul><ul><li>dascrt – u <DASUser> </li></ul></ul><ul><ul><li>db2admin create </li></ul></ul><ul><li>Administration Server 제거 </li></ul><ul><ul><li>dasdrop </li></ul></ul><ul><ul><li>db2admin drop </li></ul></ul><ul><li>Administration Server 의 시작 및 중지 </li></ul><ul><ul><li>db2admin start </li></ul></ul><ul><ul><li>db2admin stop </li></ul></ul><ul><li>Administration Server 나열 </li></ul><ul><ul><li>db2admin </li></ul></ul><ul><ul><li>db2set – g DB2ADMINSERVER </li></ul></ul><ul><li>DAS 의 Configuration File </li></ul><ul><ul><li>db2 get admin cfg (Display) </li></ul></ul><ul><ul><li>db2 update admin cfg using (Update the parameters) </li></ul></ul>
    19. 19. DB2 UDB 환경 OS Location of DB2 Environment Variables Windows NT [ 시작 ]-[ 설정 ]-[ 제어판 ]-[ 시스템 ] 에 위치하여 DB2 환경변수를 setting 한다 . UNIX Unix System 에 따라 차이가 있지만 db2profile 이라는 Script file (Bourne or Korn shell), or db2cshrc(C shell) 에 시스템 환경변수를 setting 한다 .
    20. 20. DB2 Profile Registry 1 2 3
    21. 21. db2set 명령어
    22. 22. <ul><li>Database </li></ul>
    23. 23. DB2 아키텍처
    24. 24. DB2 프로세스 모델
    25. 25. 데이터베이스 구성도 INSTANCE Catalog Tables DataBase configuration file Log Tables Tablespace Indexes Indexes Tablespace Container Container Container Container Database 1 Database 2 …. Primary Key Foreign Key Alias View Trigger Check Constraint DataBase Manager configuration file Instance …… Tables Tablespace Tablespace
    26. 26. 데이터베이스 , 테이블 스페이스와 테이블
    27. 27. 데이터베이스 작성 문법 1/3 Create Database options: CREATE DATABASE DB database-name Create Database Options AT DBPARTITIONNUM ON path drive ALIAS database-alias USING CODESET territory codeset TERRITORY COLLATE USING SYSTEM COMPATIBILITY IDENTITY numsegs NUMSEGS NLSCHAR tblspace-defn DEF_EXTENT_SZ CATALOG TABLESPACE tblspace-defn dft-extentsize
    28. 28. 데이터베이스 작성 문법 – 계속 2/3 USER TABLESPACE tblspace-defn TEMPORARY TABLESPACE tblspace-defn WITH “ comment-string” AUTOCONFIGURE USING input-keyword -- param-value APPLY DB ONLY DB AND DBM NONE
    29. 29. 데이터베이스 작성 문법 – 계속 3/3 tblspace-defn: MANAGED BY ) DATABASE USING SYSTEM USING ‘ container-string’ ) ( , FILE DEVICE ( ‘ container-string’ number-of-pages EXTENTSIZE number-of-pages PREFETCHSIZE number-of-pages number-of-millisecond OVERHEAD number-of-millisecond TRANSFERRATE
    30. 30. 데이터베이스 생성 예제 <ul><li>CREATE DB MYDB; </li></ul><ul><li>or </li></ul><ul><li>CREATE DB MYDB ON D: </li></ul><ul><li>or </li></ul><ul><li>CREATE DB MYDB </li></ul><ul><li>CATALOG TABLESPACE </li></ul><ul><li>MANAGED BY SYSTEM </li></ul><ul><li>USING (C:MYDBCATALOG) </li></ul><ul><li>TEMPORARY TABLESPACE </li></ul><ul><li>MANAGED BY SYSTEM </li></ul><ul><li>USING (C:MYDBTEMP) </li></ul><ul><li>USER TABLESPACE </li></ul><ul><li>MANAGED BY DATABASE </li></ul><ul><li>USING (FILE ‘ C:MYDBDMSUSER.TS ’ 10M); </li></ul>
    31. 31. 데이터베이스 기본 구성 ON path/drive SQL00001 SQL0000.0 SQL0001.0 SQL0002.0 SYSCATSPACE TEMPSPACE1 USERSPACE1 … … NODE0000 Instance name
    32. 32. Managing Initialization Overhead <ul><li>db2 activate database < dbalias > </li></ul><ul><li>db2 deactivate database < dbalias > </li></ul><ul><li>Versus </li></ul><ul><li>first connect to activate database </li></ul><ul><li>last disconnect to deactivate database </li></ul>
    33. 33. DB2 디렉토리 Connect to Local DB Connect to Remote DB SPC Remote DB2 R_DB indirect DB1 L_DB Pointer Node TYPE DB Name DB Alias C: 간접 DB1 L_DB Location TYPE DB Name DB Alias 50000 … SPC Port IP Node System DB Directory Local DB Directory Node Directory DB1 (Local) DB2 (Remote)
    34. 34. DB2 디렉토리 예제 C:>db2 list db directory 시스템 데이터베이스 디렉토리 디렉토리의 항목 수 = 1 데이터베이스 1 항목 : 데이터베이스 별명 = SAMPLE 데이터베이스 이름 = SAMPLE 데이터베이스 드라이브 = C:DB2 데이터베이스 릴리스 레벨 = a.00 주석 = 디렉토리 항목 유형 = 간접 카탈로그 데이터베이스파티션 번호 = 0 데이터베이스 2 항목 : 데이터베이스 별명 = RSAMPLE 데이터베이스 이름 = SAMPLE 노드 이름 = TESTSVR 데이터베이스 릴리스 레벨 = a.00 주석 = 디렉토리 항목 유형 = 리모트 카탈로그 데이터베이스 파티션 번호 = -1 C:>db2 list db directory on C: C: 의 지역 데이터베이스 디렉토리 디렉토리의 항목 수 = 1 데이터베이스 1 항목 : 데이터베이스 별명 = SAMPLE 데이터베이스 이름 = SAMPLE 데이터베이스 드라이브 = SQL00001 데이터베이스 릴리스 레벨 = a.00 주석 = 디렉토리 항목 유형 = 홈 카탈로그 데이터베이스 파티션 번호 = 0 데이터베이스 파티션 번호 = 0 System Database Directory Local Database Directory
    35. 35. DB Catalog Catalog Database Catalog Node Uncatalog DB/Node CATALOG Database DB Database-name As alias on-path/drive At-NodeName UNCATALOG DB NODE Database-name Node-name ADMIN TCPIP NODE NodeName REMOTE hostname CATALOG SERVER Service-name REMOTE_INSTANCE-instance-name SECURITY-socks
    36. 36. 카타로그 정의 예제 <ul><li>catalog tcpip node ibmsvr remote 203.231.14.48 server 50000 </li></ul><ul><li>catalog db sample as rsample at node ibmsvr </li></ul><ul><li>connect to rsample user db2inst1 using db2inst1 </li></ul><ul><li>uncatalog node ibmsvr </li></ul><ul><li>uncatalog db rsample </li></ul>
    37. 37. <ul><li>Table Spaces </li></ul>
    38. 38. 테이블 스페이스와 컨테이너 <ul><li>테이블 공간 </li></ul><ul><ul><li>데이블들을 저장하는 장소 </li></ul></ul><ul><ul><li>하나이상의 물리적인 저장 디바이스로 나누어질 수 있다 </li></ul></ul><ul><ul><li>테이블 공간 타입 </li></ul></ul><ul><li>컨테이너 </li></ul><ul><ul><li>데이터가 실제적으로 저장되는 물리적 저장장치 </li></ul></ul><ul><ul><li>단일 테이블 공간은 여러 컨테이너에 걸쳐 있을 수 있지만 , 각 컨테이너는 하나의 테이블 공간에만 속할 수 있다 . </li></ul></ul><ul><ul><li>SMS 일 경우 , 컨테이너는 디렉토리이다 . </li></ul></ul><ul><ul><li>DMS 일 경우 , 컨테이너는 파일이나 디바이스이다 . </li></ul></ul>
    39. 39. 테이블 스페이스 타입 <ul><li>테이블 공간 타입 </li></ul><ul><ul><li>Regular </li></ul></ul><ul><ul><li>Large </li></ul></ul><ul><ul><li>Temporary </li></ul></ul><ul><li>테이블 데이터 타입 </li></ul><ul><ul><li>Regular </li></ul></ul><ul><ul><li>Long </li></ul></ul><ul><ul><li>Index </li></ul></ul>
    40. 40. 테이블 스페이스 작성 문법 IN DATABASE PATITION GROUP db-partition-group-name TABLESPACE tablespace-name CREATE LARGE SYSTEM USER TEMPOARY REGULAR PAGESIZE PAGESIZE 4096 Integer K MANAGED BY SYSTEM system-containers DATABASE database-containers EXTENTSIZE number-of-pages Integer K M G
    41. 41. 테이블 스페이스 작성 문법 - 계속 OVERHEAD number-of-milliseconds 24.1 number-of-milliseconds 0.9 TRANSFERRATE DROPPED TABLE RECOVERY off on PREFETCHSIZE Integer K M number-of-pages G BUFFERPOOL bufferpool-name
    42. 42. 테이블 스페이스 작성 문법 - 계속 system-containers: database-containers: container-clause: on-db-partitions-clause: on-db-partitions-clause USING container-clause , USING on-db-partitions-clause ‘ container-string’ ) ( Integer K M G , ( FILE DEVICE ‘ container-string’ number-of-pages ) DBPARTITIONNUM DBPARTITIONNUMS ( ON node-number1 node-number2 TO , )
    43. 43. 테이블 스페이스 작성 문법 – 예제 1 <ul><li>Creating SMS Tablespaces </li></ul><ul><li>Unix : </li></ul><ul><ul><li>create tablespace SMSTBS managed by system </li></ul></ul><ul><ul><li>using ( ‘ /SMS/container1 ’ , ’ /SMS/container2 ’ ) </li></ul></ul><ul><ul><li>prefetchsize 32 </li></ul></ul><ul><li>Intel : </li></ul><ul><ul><li>create tablespace SMSTBS managed by system </li></ul></ul><ul><ul><li>using ( ‘ C:SMScontainer1 ’ , ’ D:SMScontainer2 ’ ) </li></ul></ul><ul><ul><li>prefetchsize 32 </li></ul></ul><ul><li>Creating DMS Tablespaces </li></ul><ul><li>Unix : </li></ul><ul><ul><li>create tablespace DMSTBS managed by database </li></ul></ul><ul><ul><li>using (device ‘ /dev/rdata1 ’ 1024, device ‘ /dev/rdata2 ’ 1024) </li></ul></ul><ul><ul><li>extent 32 </li></ul></ul><ul><li>Intel : </li></ul><ul><ul><li>create tablespace DMSTBS managed by database </li></ul></ul><ul><ul><li>using (file ‘ E:DMScontainer1 ’ 5M, file ‘ F:DMScontainer2 ’ 5M,) </li></ul></ul><ul><ul><li>extent 32 </li></ul></ul>
    44. 44. 테이블 스페이스 작성 문법 – 예제 2 <ul><li>connect to mydb; </li></ul><ul><li>create tablespace datatbs </li></ul><ul><li>managed by database </li></ul><ul><li>using (file ‘ C:MYDBdatatbs1.ts ’ 10M, </li></ul><ul><li>file ‘ C:MYDBdatatbs2.ts ’ 10M); </li></ul><ul><li>create tablespace indextbs </li></ul><ul><li>managed by database </li></ul><ul><li>using (file ‘ C:MYDBindextbs.ts ’ 5M); </li></ul><ul><li>create large tablespace longtbs </li></ul><ul><li>managed by database </li></ul><ul><li>using (file ‘ C:MYDBlongtbs1.ts ’ 10M); </li></ul><ul><li>create table emp_photo ( </li></ul><ul><li>empno char(6) not null, </li></ul><ul><li>photo_format varchar(10) not null, </li></ul><ul><li>picture blob(150K) not logged compact) </li></ul><ul><li>in datatbs </li></ul><ul><li>index in indextbs </li></ul><ul><li>long in longtbs; </li></ul>
    45. 45. Extent 크기 0 2 1 3 Container 0 Container 1 Extent Tablespace B 1 Extent=32 Pages (* 4K) (Default) 4K
    46. 46. 테이블스페이스의 생성시 고려사항
    47. 47. SMS vs. DMS SMS DMS 제어 운영체제 Database Manager 컨테이너 디렉토리 파일 혹은 Raw device 공간할당 추가 공간이 요구되어질 때마다 한 page 씩 할당 공간이 미리 할당되며 하나의 Extent 안에 있는 공간은 물리적으로 연속적 테이블위치 한 테이블은 한 테이블 공간에 존재해야 한다 . 하나의 테이블은 여러 개의 테이블공간으로 나뉠 수 있다 . 크기를 증가시키는 법 Redirect restore~ 이용 <ul><li>Alter tablespace 문으로 </li></ul><ul><li>Add container </li></ul><ul><li>resize </li></ul><ul><li>extend </li></ul>크기를 줄이는 법 Redirect restore~ 이용 <ul><li>Alter tablespace 문으로 </li></ul><ul><li>Drop container </li></ul><ul><li>Reduce </li></ul>장점 요구되어질 때 시스템에 의해 공간이 할당 데이터베이스를 생성할 때 초기 작업이 줄어든다 컨테이너를 추가함으로써 테이블 공간이 증가 데이터 타입에 따라 테이블을 여러 테이블공간으로 분리할 수 있다 . 적절한 business 작은 개인용 데이터베이스 용으로 Temporary 테이블 공간 용으로 크고 점점 커지는 데이터베이스용으로
    48. 48. SMS Physical Files 파일이름 설 명 SQLTAG.NAM 데이터베이스가 완전하고 일치하는지 검증하기 위해 사용자가 데이터베이스에 연결할 때 DBM 에 의해 이용 SQLxxxxx.DAT LONG VARCHAR, LONG VARGRAPHIC, LOB 데이터를 제외한 모든 데이터가 저장된다 . SQLxxxxx.LF LONG VARCHAR, LONG VARGRAPHIC 을 포함하는 파일 SQLxxxxx.LB BLOB, CLOB 또는 DBCLOB 데이터를 포함하는 파일 SQLxxxxx.LBA SQLxxxxx.LB 파일에 대한 공간 할당 및 여유 공간정보를 포함하는 파일 SQLxxxxx.INX 해당 테이블에 대한 모든 인덱스는 이 파일에 저장된다 .
    49. 49. 테이블스페이스의 list 보기 <ul><li>db2 list tablespaces </li></ul><ul><li>db2 list tablespaces show detail </li></ul><ul><li>db2 list tablespace containers for x </li></ul><ul><li>db2 list tablespace containers for x show detail </li></ul>C:>db2 list tablespaces 현재 데이터베이스에 대한 테이블 스페이스 테이블 스페이스 ID = 0 이름 = SYSCATSPACE 유형 = 시스템 관리 스페이스 내용 = 임의의 데이터 상태 = 0x0000 세부사항 설명 : 정상 테이블 스페이스 ID = 1 이름 = TEMPSPACE1 유형 = 시스템 관리 스페이스 내용 = 시스템 임시 데이터 상태 = 0x0000 세부사항 설명 : 정상
    50. 50. ALTER TABLESPACE 문은 다음의 경우에 사용 : <ul><li>DMS table space 에 container 를 추가할 경우 </li></ul><ul><li>DMS table space 에 container 를 삭제할 경우 </li></ul><ul><li>DMS table space 의 container 의 크기를 변경할 경우 </li></ul><ul><li>DMS table space 의 container 의 크기를 확장할 경우 </li></ul><ul><li>DMS table space 의 container 의 크기를 축소할 경우 </li></ul><ul><li>Table space 의 PREFETCHSIZE 값을 변경할 경우 </li></ul><ul><li>Table space 의 OVERHEAD 값을 변경할 경우 </li></ul><ul><li>Table space 의 TRANSFERRATE 값을 변경할 경우 </li></ul><ul><li>Table space 의 BUFFERPOOL 값을 변경할 경우 </li></ul>
    51. 51. ALTER 테이블 스페이스 작성 문법 tablespace-name ALTER TABLESPACE on-db-partitions-clause system-container-clause ADD database-container-clause on-db-partitions-clause DROPPED TABLE RECOVERY EXTEND RESIZE all-containers-clause on-db-partitions-clause ON OFF REDUCE drop-container-clause DROP PREFETCHSIZE number-of-pages Integer K,M,G BUFFERPOOL bufferpool-name OVERHEAD number-of-millisecond TRANSFERRATE number-of-milliseconds SWITCH ONLINE
    52. 52. 테이블스페이스 변경 실습 <ul><li>컨테이너 추가 </li></ul><ul><ul><li>alter tablespace longtbs </li></ul></ul><ul><ul><li>add (file ‘ C:MYDBlongtbs2.ts ’ 5M); </li></ul></ul><ul><li>컨테이너 삭제 </li></ul><ul><ul><li>alter tablespace datatbs </li></ul></ul><ul><ul><li>drop (file ‘ C:MYDBdatatbs2.ts ’ ); </li></ul></ul><ul><li>컨테이너 크기 증가 </li></ul><ul><ul><li>alter tablespace indextbs </li></ul></ul><ul><ul><li>resize (file ‘ C:MYDBindextbs.ts ’ 10M); </li></ul></ul><ul><li>or </li></ul><ul><ul><li>alter tablespace indextbs </li></ul></ul><ul><ul><li>extend (file ‘ C:MYDBindextbs.ts ’ 5M); </li></ul></ul><ul><li>컨테이너 크기 감소 </li></ul><ul><ul><li>alter tablespace longtbs </li></ul></ul><ul><ul><li>reduce (file ‘ C:MYDBlongtbs2.ts ’ 5M); </li></ul></ul>
    53. 53. 테이블 공간 관리 SYSCAT.TABLES TBSPAID TABLEID TABNAME SYSCAT.TABLESPACES EXTENTSIZE DATATYPE TBSPACETYPE TBSPACEID TBSPACE S = SMS D = DMS A = All L = Long T = Temp
    54. 54. Bufferpool <ul><li>SYSCTRL or SYSADM authority </li></ul>create bufferpool mybp1 size 1000 alter tablespace datatbs bufferpool mybp1 create bufferpool mybp2 size 1000 deferred IMMEDIATE DEFERRED bufferpool-name Create Bufferpool size Number of page
    55. 55. QUIT vs. TERMINATE vs. CONNECT RESET CLP COMMAND Terminate CLP Back-end Process Disconnect database Connection quit No No terminate Yes Yes connect reset No Yes if CONNECT = 1 (RUOW)
    56. 56. CLP 문법 db2-command db2 option flag sql-statement ? phrase message sql-state class-code
    57. 57. <ul><li>Objects </li></ul>
    58. 58. Objects 의 계층적 구조 dbm configuration file Instance 1 Database 2 Catalog Log DB configuration file Catalog Log DB cfg file Table1 Index1 BLOBs Index1 Index2 Table2 Table3 View1 View2 View3 Database 1 Table2 View1
    59. 59. 데이터베이스 디렉토리와 구조 [ SQLT0000.0 ] [ DB2INSTANCE ] [ sqldbdir ] sqldbdir SQLDBCON cfg file SQLOGCTL.LFH log file control SQLSPCS.1 tablespace 에 관한 file SQLSPCS.2 tablespace 에 관한 file SQLBP.1 bufferpool 에 관한 file SQLBP.2 bufferpool 에 관한 file [ db2event ] monitoring 의 output file 이 들어가는 directory db2rhist.asc recovery history 를 가지는 file db2rhist.bak [ SQLOGDIR ] S0000000.LOG S0000001.LOG SQLTAG.NAM SQL00030.DAT SQL00030.INX SQL00030.LB SQL00030.LF SQL00030.LBA [ SMS ] SQLTAG.NAM DMSLONG.TBS ... . . . . . . . . . . . <ul><li>DAT - data </li></ul><ul><li>INX - index </li></ul><ul><li>LF - LONG VARCHAR & LONG VARGRAPHIC </li></ul><ul><li>LB - LOBS </li></ul><ul><li>LBA - LOB allocation </li></ul>[ SQL00001 ] [ CONT1 ] [ CONT2 ] SQLTAG.NAM SQL00041.DAT [ DMS ] [ NODE0000 ] / path . . . .
    60. 60. Schema <ul><li>Schema 의 정의 </li></ul><ul><ul><li>테이블 및 다른 데이터베이스 오브젝트들을 그룹화하도록 돕는 사용자 ID 와 같은 식별자 </li></ul></ul><ul><ul><li>데이타베이스의 또 다른 오브젝트임 . </li></ul></ul><ul><li>사용자에 의해 소유되고 데이터와 스키마 안에 있는 오브젝트에 대한 Access 를 제어할 수 있다 . </li></ul><ul><li>Object 의 이름 두 부분 중 앞부분의 이름 . </li></ul><ul><li>예 ) db2admin.employee </li></ul><ul><li>default schema 는 오브젝트를 생성한 사용자의 USER ID 임 . </li></ul>
    61. 61. 스키마 생성 <ul><li>Connect to database </li></ul><ul><li>SYSADM 또는 DBADM 의 권한이 필요하다 . </li></ul><ul><li>스키마 이름은 SYS 로 시작할 수 없다 . </li></ul>Create schema Payroll authorization db2admin
    62. 62. System Catalog Tables 와 Views
    63. 63. 테이블 ALTER table 명 TABLE CREATE table 명 TABLE ( ) 칼럼정의 Primary constraint Referential constraint check constraint DROP table 명 TABLE COLUMN Primary constraint Referential constraint check constraint DROP PRIMARY KEY FOREIGN KEY UNIQUE CHECK CONSTRAINT 제한조건명 ADD 칼럼정의 ( ) IN 테이블공간명 INDEX IN 테이블공간명 LONG IN 테이블공간명 Constraint 절 CONSTRAINT 제한조건명 UNIQUE PRIMARY FOREIGN KEY ( 칼럼명 ) CHECK ( 점검조건 )
    64. 64. 테이블 - 계속 <ul><li>DB2 UDB 는 4, 8, 16, 32 KB 크기의 페이지를 지원합니다 . 컬럼의 개수 , 행의 최대 크기 , 테이블의 최대 크기 등은 페이지의 크기에 따라 달라진다 . </li></ul><ul><li>테이블은 제어 센터나 CREATE TABLE 문을 통해 생성 . </li></ul><ul><ul><li>테이블 , 뷰 , 별명의 이름은 128 문자까지 . 컬럼의 이름은 30 문자까지 . </li></ul></ul><ul><li>온라인 테이블 재구성 </li></ul><ul><ul><li>테이블을 재 구성 하는 동안 응용프로그램이 테이블을 액세스할 수 있다 . </li></ul></ul><ul><ul><li>유형 2 인덱스가 있고 , 확장 인덱스가 없는 테이블에만 허용된다 . </li></ul></ul><ul><li>오프라인 테이블 재구성 </li></ul><ul><ul><li>온라인 보다 테이블을 더 빨리 재 구성할 수 있다 . </li></ul></ul><ul><ul><li>LOBS 와 LONG 데이터는 특별히 요청하지 않는 한 더 이상 재 구성 하지 않는다 . </li></ul></ul><ul><ul><li>테이블이 재 구성 된 후 인덱스가 순서대로 대 구성 된다 . </li></ul></ul>페이지 컬럼 행 길이 테이블 크기 4KB 500 개 4005 바이트 64GB 8KB 1012 개 8101 바이트 128GB 16KB 1012 개 16293 바이트 256GB 32KB 1012 개 32677 바이트 512GB
    65. 65. 테이블 생성 예제 <ul><li>connect to mydb; </li></ul><ul><li>create table artists </li></ul><ul><li>(artno smallint not null, </li></ul><ul><li> name varchar(50) with default ‘ abc ’ , </li></ul><ul><li> Classfication char(1) not null, </li></ul><ul><li> Bio clob(10K) not logged, </li></ul><ul><li> Picture blob(10M) not logged compact </li></ul><ul><li>) </li></ul><ul><li>in datatbs </li></ul><ul><li>index in indextbs </li></ul><ul><li>long in longtbs; </li></ul>
    66. 66. 인덱스 93 87 85 81 47 19 17 색인 KMP 19 DJS 87 CJP 93 MLI 81 FCP 85 QRS 17 ABC 47 테이블 A A 칼럼 행 색인 및 테이블 사이의 관계
    67. 67. 인덱스 생성 CREATE index 명 INDEX UNIQUE ON nickname table 명 DESC ASC ( ) ’ 칼럼명 SPECIFICATION ONLY MINPCTUSED integer DISALLOW REVERSE SCAN ALLOW REVERSE SCAN DROP index 명 INDEX CLUSTER PCTFREE PCTFREE 10 integer INCLUDE ’ 칼럼명 COLLECT STATISTICS DETAILED SAMPLED
    68. 68. View CONNECT TO MUSICDB CREATE VIEW EMPSALARY AS SELECT EMPNO, EMPNAME, SALARY FROM PAYROLL, PERSONNEL WHERE EMPNO=EMPNUMB AND SALARY > 30000.00 SELECT * FROM EMPSALARY CREATE view 명 VIEW ( ) ’ 칼럼명 AS DROP view 명 VIEW fullselect EMPNO EMPNAME SALARY ------ ----------------- ---------- 10 John Smith 1000000.00 20 Jane Johnson 300000.00 30 Robert Appleton 250000.00 ...
    69. 69. Alias CONNECT TO MUSICDB CREATE ALIAS SINGERS FOR ARTISTS CREATE ALIAS DBUSER.ALBUMS FOR DB2INST1.ALBUMS CREATE 별명 SYNONYM ALIAS FOR 테이블명 뷰명 별명 2 DROP 별명 ALIAS
    70. 70. Constraints( 제한조건 ) <ul><li>제한조건 (Constraints) 은 데이타베이스 관리 프로그램이 실행하는 규칙 </li></ul><ul><li>제한 조건의 세가지 유형 </li></ul><ul><ul><li>Unique Constraint </li></ul></ul><ul><ul><li>한 테이블내의 하나 이상의 행에서 동일한 값을 사용할 수 없도록 하는 규칙 </li></ul></ul><ul><ul><li>Referential Constraint </li></ul></ul><ul><ul><li>하나이상의 테이블 내에 있는 하나 이상의 칼럼 값에 관한 논리적인 규칙 </li></ul></ul><ul><ul><li>테이블 Check Constraint </li></ul></ul><ul><ul><li>특정 테이블에 데이터를 추가할 때 제한조건을 설정 </li></ul></ul><ul><ul><li>예를 들면 개인정보를 포함하는 테이블에 봉급 데이터가 추가 또는 갱신될 때 사원에 대한 봉급 레벨이 최소 50 만원 이상이 되도록 제한할 수 있다 . </li></ul></ul>
    71. 71. Referential Integrity <ul><li>테이블 간 또는 테이블 안에서 정의된 관계를 의미한다 . </li></ul><ul><li>Create table 문과 Alter table 문에서 정의할 수 있다 . </li></ul><ul><li>Insert, Update, Delete, Alter table, Add Constraint 및 SET Integrity 문을 수행하는 동안 데이타베이스 관리 프로그램을 통해 적용 </li></ul>
    72. 72. Referential Integrity - 계속
    73. 73. Referential Integrity 예제 <ul><li>CREATE TABLE DEPARTMENT ( </li></ul><ul><li>DEPT CHAR(3) NOT NULL, </li></ul><ul><li>DEPTNAME CHAR(20) NOT NULL, </li></ul><ul><li>CONSTRAINT DEPT_NAME </li></ul><ul><li>UNIQUE (DEPTNAME) </li></ul><ul><li>); </li></ul><ul><li>ALTER TABLE DEPARTMENT </li></ul><ul><li>ADD PRIMARY KEY (DEPT); </li></ul><ul><li>CREATE TABLE EMPLOYEE ( </li></ul><ul><li>EMPNO CHAR(6) NOT NULL, </li></ul><ul><li>NAME CHAR(30), </li></ul><ul><li>WKDEPT CHAR(3) NOT NULL </li></ul><ul><li>); </li></ul><ul><li>ALTER TABLE EMPLOYEE </li></ul><ul><li>ADD FOREIGN KEY (WKDEPT) </li></ul><ul><li>REFERENCES DEPARTMENT (DEPT) </li></ul><ul><li>ON DELETE RESTRICT ; </li></ul>
    74. 74. Unique Key CONNECT TO MUSICDB CREATE TABLE PAY.EMPTAB ( EMPNO SMALLINT NOT NULL PRIMARY KEY, NAME CHAR(20), DRIVERLIC CHAR(17) NOT NULL, CONSTRAINT DRIV_UNIQ UNIQUE(DRIVERLIC) ) IN TBSP1 Unique indexes PAY.DRIV_UNIQ and SYSIBM.yymmddhhmmssxxx created Columns must be NOT NULL
    75. 75. Check Constraints CREATE TABLE SPEED_LIMITS ( ROUTE_NUM SMALLINT, CANADA_SL INTEGER NOT NULL, US_SL INTEGER NOT NULL CHECK (US_SL <=65) ) ALTER TABLE SPEED_LIMITS ADD CONSTRAINT SPEED65 CHECK (US_SL <=65) DATA RULE : RULE RULE RULE RULE No value in the US_SL column in the table SPEED_LIMITS can exceed 65. PGM n DB2 PGM 1 PGM 2 DB2 PGM n PGM 1 PGM 2 ENFORCEMENT APPLICATION DATABASE
    76. 76. <ul><li>Security </li></ul>
    77. 77. 권한 SYSADM SYSMAINT DATABASE1 DBADM DATABASE2 SYSCTRL 데이터를 볼 수 없다 DBADM
    78. 78. SYSADM 권한 <ul><li>시스템 관리 권한 (SYSADM) </li></ul><ul><ul><li>최상위 레벨의 관리자 권한 . </li></ul></ul><ul><ul><li>유틸리티를 수행하고 데이타베이스 및 데이타베이스 관리 프로그램 명령 발행 . </li></ul></ul><ul><ul><li>데이타베이스 관리 프로그램 인스턴스 내의 데이타베이스에 있는 테이블의 데이타베이스에 액세스 가능 </li></ul></ul><ul><li>SYSADM 그룹 </li></ul><ul><ul><li>Unix System 의 경우 </li></ul></ul><ul><ul><ul><li>SYSADM 그룹은 인스턴스 OWNER 의 1 차 그룹으로 설정 </li></ul></ul></ul><ul><ul><li>Windows NT System 의 경우 </li></ul></ul><ul><ul><ul><li>로컬 Administrator group 의 멤버로 DB2 UDB 를 설치 </li></ul></ul></ul><ul><li>DBM Configuration cfg 에서 SYSADM_GROUP 파라 미터를 원하는 그룹이름으로 변경 </li></ul>
    79. 79. SYSCTRL 권한 <ul><li>최상위 레벨의 시스템 제어 권한 . </li></ul><ul><li>데이타베이스 관리 프로그램 인스턴스와 데이타베이스에 대해 유지보수 및 유틸리티 조작을 수행할 수 있는 기능 제공 . </li></ul><ul><li>사용자가 중요한 데이터가 들어 있는 데이타베이스 관리 프로그램 인스턴스를 관리하기 위한 목적으로 설계 . </li></ul><ul><li>SYSCTRL 권한을 갖고 있는 사용자는 데이타베이스 오브젝트에 Access 권한이 없다 . </li></ul><ul><li>SYSCTRL 권한을 갖고 있는 사용자는 데이타베이스 관리 Configuration file 을 수정할 권한이 없다 . </li></ul>
    80. 80. SYSMAINT 권한 <ul><li>시스템 제어 권한 중 두 번째로 높은 레벨 . </li></ul><ul><li>시스템 자원에 영향을 줄 수 있지만 , 데이터베이스의 데이터를 직접 액세스할 수는 없다 . </li></ul>
    81. 81. DBADM 권한 <ul><li>관리 권한 중 두 번째로 높은 레벨 . </li></ul><ul><li>특정 데이타베이스에만 적용되며 사용자가 특정 유틸리티를 수행하고 데이타베이스 명령을 발행하고 데이타베이스 테이블의 데이터에 액세스 할 수 있다 . </li></ul><ul><li>SYSADM 권한을 가지고 있는 사용자만이 DBADM 권한을 권한 부여 하거나 권한 취소할 수 있다 . </li></ul><ul><li>DBADM 권한을 가지고 있는 사용자는 다른 사용자에게 데이터베이스에 대한 특권을 권한 부여할 수 있음 . </li></ul>
    82. 82. 권한 부여 <ul><li>SYSADM, SYSCTRL, SYSMAINT 권한 부여 </li></ul><ul><ul><li>데이타베이스관리자의 Configuration file 을 변경시켜야 한다 . </li></ul></ul><ul><ul><li>Grant 문을 이용하여 권한 부여할 수 없다 . </li></ul></ul>C:> db2 update dbm cfg using SYSADM_GROUP db2adm C:> db2 update dbm cfg using SYSCTRL_GROUP db2cntrl C:> db2stop C:> db2start C:> db2 grant DBADM to SPC <ul><li>DBADM 권한 부여 </li></ul><ul><ul><li>SYSADM 권한을 갖고 있는 사용자가 Grant 문을 이용하여 권한을 부여할 수 있다 . </li></ul></ul>
    83. 83. Database 권한 요약 기능 SYSADM SYSCTRL SYSMAINT DBADM Catalog / Uncatalog Database Y Y Catalog / Uncatalog Node Y Y Catalog / Uncatalog DCS Y Y Migrate Database Y Update DBM Cfg Y Grant / Revoke DBADM Y Force Users Y Y Create / Drop Database Y Y Quiesce Instance / Database Y Y Create / Alter / Drop Tablespace Y Y Restore to New Database Y Y Update DB Cfg Y Y Backup Database / Tablespace Y Y Y Restore to Existing Database Y Y Y Rollforward Recovery Y Y Y Start / Stop Database Instance Y Y Y Restore Tablespace Y Y Y Run Trace Y Y Y Take DBM / DB Snapshot Y Y Y Query Tablespace State Y Y Y Y Update Log History Files Y Y Y Y Quiesce Tablespace Y Y Y Y Load Tables Y Y Y Set / Unset Check Pending State Y Y Y Read Log Files Y Y Y Create / Activate / Drop Event Monitors Y Y Y Run Load Utility Y Y Y
    84. 84. 권한과 특권 CONTROL (Indexes) CONNECT (Database) BINDADD (Database) BIND EXECUTE ALL DELETE INSERT SELECT UPDATE ALL ALTER DELETE INDEX INSERT REFERENCES SELECT UPDATE CONTROL (Views) CONTROL (Tables) CONTROL (Packages) CREATE_NOT_FENCED (Database) CREATETAB (Database) DBADM SYSCTRL SYSMAINT Authority Privilege SYSADM IMPLICIT_SCHEMA (Database) ALTERIN CREATEIN DROPIN ( 스키마 소유자 )
    85. 85. 데이터베이스 특권 데이타베이스 BINDADD IMPLICIT_SCHEMA CREATE_NOT_FENCED LOAD CREATETAB CONNECT
    86. 86. 오브젝트 특권 데이타베이스 스키마 소유자 CONTROL ( 뷰 ) CONTROL 테이블 CONTROL ( 별명 ) CONTROL ( 색인 ) CONTROL ( 테이블공간 ) CONTROL ( 패키지 ) ALL ALTER INDEX INSERT REFERENCES SELECT UPDATE ALL ALTER INDEX REFERENCES ALL DELETE INSERT SELECT UPDATE BIND EXECUTE CREATEIN ALTERIN DROPIN USE
    87. 87. 스키마 특권 <ul><li>스키마 권한은 데이타베이스의 스키마에 조치를 취할 수 있는 권한임 . </li></ul><ul><li>사용자에게는 다음 권한이 권한 부여 </li></ul><ul><ul><li>CREATEIN </li></ul></ul><ul><ul><ul><li>사용자가 스키마 내에서 오브젝트를 작성하도록 한다 . </li></ul></ul></ul><ul><ul><li>ALTERIN </li></ul></ul><ul><ul><ul><li>사용자가 스키마 내에서 오브젝트를 변경하도록 한다 . </li></ul></ul></ul><ul><ul><li>DROPIN </li></ul></ul><ul><ul><ul><li>사용자가 스키마 내에서 오브젝트를 제거하도록 한다 . </li></ul></ul></ul><ul><li>스키마 소유자는 모두 이러한 특권과 기능을 다른 사용자에게 권한 부여할 권한을 가짐 . </li></ul><ul><li>스키마 오브젝트 내에서 조정되는 오브젝트에는 테이블 , 뷰 , 색인 , 패키지 , 데이터 유형 , 함수 , 트리거 , 프로시저 , 별명이 있다 . </li></ul>
    88. 88. 테이블 공간 특권 <ul><li>테이블 공간 특권은 데이타베이스에서 테이블 공간에 대한 조치를 포함 . </li></ul><ul><li>사용자에게는 다음 권한이 권한 부여 </li></ul><ul><ul><li>USE </li></ul></ul><ul><ul><ul><li>테이블 공간 내에서 테이블을 작성하도록 허용한다 . </li></ul></ul></ul><ul><li>테이블 공간의 소유자는 USE 특권과 이 특권을 다른 사용자에게 부여하는 능력을 가진다 . </li></ul><ul><li>데이타베이스 작성 중 USERSPACE1 에 대한 USE 특권이 PUBLIC 으로 부여 </li></ul><ul><li>USE 특권은 SYSCATSPACE 또는 임의의 시스템 임시 테이블 공간에서 사용될 수 없다 . </li></ul>
    89. 89. 테이블 및 뷰 특권 <ul><li>사용자에게는 다음 권한이 권한 부여 </li></ul><ul><ul><li>CONTROL </li></ul></ul><ul><ul><li>ALTER </li></ul></ul><ul><ul><li>INDEX </li></ul></ul><ul><ul><li>SELECT </li></ul></ul><ul><ul><li>INSERT </li></ul></ul><ul><ul><li>DELETE </li></ul></ul><ul><ul><li>UPDATE </li></ul></ul><ul><ul><li>REFERENCES </li></ul></ul>
    90. 90. 패키지 특권 <ul><li>패키지 특권은 사용자가 패키지를 작성하고 조작할 수 있도록 한다 . </li></ul><ul><li>사용자에게는 다음 권한이 권한 부여 </li></ul><ul><ul><li>CONTROL </li></ul></ul><ul><ul><ul><li>패키지를 리바인드 , 제거 또는 실행할 능력과 이러한 특권을 다른 사용자에게 확대할 수 있는 능력을 제공 </li></ul></ul></ul><ul><ul><li>BIND </li></ul></ul><ul><ul><ul><li>사용자가 기존 패키지를 리바인드 할 수 있도록 한다 . </li></ul></ul></ul><ul><ul><li>EXECUTE </li></ul></ul><ul><ul><ul><li>사용자가 패키지를 실행할 수 있도록 한다 . </li></ul></ul></ul>
    91. 91. 특권 요약 RESOURCE NEEDED TO CREATE NEEDED TO CONTROL OTHER PRIVILEGES Database SYSADM SYSCTRL DBADM CONNECT BINDADD CREATETAB NOFENCE IMPLICIT_SCHEMA Tablespace SYSADM SYSCTRL DBADM USE Package BINDADD CONTROL BIND EXECUTE Table (T) View (V) CREATETAB (T) CONTROL OR SELECT (V) CONTROL SELECT (T/V) INSERT (T/V) DELETE (T/V) UPDATE (T/V) ALTER (T) INDEX (T) REFERENCES (T) Index INDEX CONTROL none Alias If schema differs from current authid, requires DBADM, SYSADM CONTROL none Schemas SYSADM DBADM IMPLICIT_SCHEMA CONTROL CREATEIN ALTERIN DROPIN
    92. 92. 권한 부여 <ul><li>DBADM 권한을 가진 사용자는 사용자 MEL 에 대한 PAY 스키마를 생성할 수 있다 . </li></ul><ul><ul><li>CREATE SCHEMA PAY AUTHORIZATION MEL </li></ul></ul><ul><li>MEL 은 스키마 PAY 에서 오브젝트를 생성할 수 있다 . </li></ul><ul><ul><li>CREATE TABLE PAY.T1 (COL1 INT) </li></ul></ul><ul><li>MEL 은 다른 사용자에게 특권을 부여할 수 있다 . </li></ul><ul><ul><li>GRANT CREATEIN ON SCHEMA PAY TO USER CAL </li></ul></ul><ul><ul><li>GRANT ALTERIN, CREATEIN, DROPIN ON SCHEMA PAY TO GROUP G1 WITH GRANT OPTION </li></ul></ul><ul><li>모든 사용자가 아직 존재하지 않는 스키마 이름과 함께 CREATE 문을 사용하여 오브젝트를 작성함으로써 스키마를 내재적으로 작성할 수 있음 . </li></ul><ul><ul><li>REVOKE IMPLICIT_SCHEMA ON DATABASE FROM PUBLIC </li></ul></ul><ul><ul><li>GRANT IMPLICIT_SCHEMA ON DATABASE TO USER JON </li></ul></ul>
    93. 93. 권한 부여 GRANT/ REVOKE database privileges ON DATABASE TO/ FROM USER/ GROUP userid groupid PUBLIC package Privileges ON PACKAGE package_name table/view privileges ON TABLE table/view_name CONTROL ON INDEX index_name
    94. 94. Grant … Table, View 특권 부여 문법 GRANT PRIVILEGES ALL , ALTER CONTROL DELETE INDEX INSERT REFERENCES SELECT UPDATE , ( column-name ) , ( column-name ) , ON TABLE table-name view-name TO authorization-name PUBLIC USER GROUP WITH GRANT OPTION
    95. 95. 권한 부여 예제 Mel 은 group1 의 멤버이다 . db2 grant select on table T1 to group group1 db2 grant update on table T1 to user mel db2 grant insert on table T1 to public db2 grant insert on table T2 to public exec sql insert… from T1... exec sql update T1 set... exec sql select... from T2... Mel attempts bind of pgm.sqc bind fails OK OK SQL OK create view V1 as select C3 from T1 create view V2 as select C1, C8 from T2 Mel attempts to create a view OK create view fails SQL
    96. 96. DB2 BIND GRANT 옵션 <ul><li>DB2 BIND… GRANT 명령어는 PACKAGE 에 대해 EXECUTE, BIND 특권을 특정 USERID 나 PUBLIC 에게 부여한다 .. </li></ul>RICK 은 BINDADD 와 필요한 SQL 특권을 가지고 있다 SALLY 는 packa 에 대해 CONTROL 권한을 가지고 있다 . db2 connect to sample db2 prep packa.sqc bindfile db2 bind packa.bnd grant Authid Groupid public OR Grant execute, bind on package packa To Authid Groupid public
    97. 97. 프로그램에 요구되는 특권 Action 요구되는 특권 Precompile to bindfile CONNECT on database Create a new package CONNECT on database BINDADD on database 각 Static SQL 문을 수행할 수 있는 특권 Modify an existing package CONNECT on database BIND on package 각 Static SQL 문을 수행할 수 있는 특권 Recreate an existing package CONNECT on database BIND on package Execute a package CONNECT on database EXECUTE on package Drop a package CONNECT on database CONTROL on package or creator of package
    98. 98. 특권 정보 SYSCAT.DBAUTH Database privileges SYSCAT.COLAUTH Table and View Column privileges SYSCAT.INDEXAUTH Index privileges SYSCAT.PACKAGEAUTH Access Package privileges SYSCAT.SCHEMAAUTH Schema privileges SYSCAT.TABAUTH Table and View privileges
    99. 99. 내재적 특권 <ul><li>데이터베이스를 생성하면… </li></ul><ul><ul><li>CONNECT, CREATETAB, BINDADD, CREATE_NOT_FENCED, 그리고 sIMPLICIT_SCHEMA 특권을 가진 DBADM 권한을 내부적으로 생성자에게 부여 . To creator (SYSADM or SYSCTRL) </li></ul></ul><ul><ul><li>BINDADD, CREATETAB, CONNECT, IMPLICIT_SCHEMA, 그리고 SYSADM CATALOG TABLE 에 대한 SELECT 특권을 내재적으로 부여 </li></ul></ul><ul><ul><li>성공적으로 바운드된 패키지에 대해 BIND 및 EXECUTE 특권을 PUBLIC 에게 부여 </li></ul></ul><ul><ul><li>System catalog table 및 뷰에 대해 SELECT 특권을 PUBLIC 에게 부여 </li></ul></ul><ul><ul><li>USERSPACE1 에 대한 USE 특권을 PUBLIC 에게 부여 </li></ul></ul><ul><li>DBADM 권한을 부여하면… </li></ul><ul><ul><li>BINDADD, CREATETAB, CONNECT, CREATE_NOT_FENCED 그리고 IMPLICIT_SCHEMA 특권을 내재적으로 부여 </li></ul></ul><ul><li>오브젝트 (table, index, package) 를 생성하면… </li></ul><ul><ul><li>오브젝트 생성자에게 CONTROL 특권을 내재적으로 부여 </li></ul></ul><ul><li>뷰를 생성하면… </li></ul><ul><ul><li>기본 테이블에 대한 생성자의 특권이 뷰 생성자에게 내재적으로 부여 </li></ul></ul>

    ×