CREATE USER

CREATE USER 명령을 사용하여 새 사용자 계정을 작성할 수 있습니다.

구문

사용자를 작성하는 구문:
CREATE USER <username> [WITH <clause> [<clause>…] ]
여기서 <clause>는 다음 중 하나를 나타냅니다.
PASSWORD {'<pw>'|NULL} |
EXPIRE PASSWORD
PASSWORDEXPIRY <days>
AUTH {LOCAL|DEFAULT}
SYSID <userid> |
IN GROUP <usergrp>[,<usergrp>…] |
IN RESOURCEGROUP <rsg> 
VALID UNTIL '<valid_date>' |
DEFPRIORITY {CRITICAL|HIGH|NORMAL|LOW|NONE} |
MAXPRIORITY {CRITICAL|HIGH|NORMAL|LOW|NONE} |
ROWSETLIMIT <rslimit> |
SESSIONTIMEOUT <sessiontimeout> |
QUERYTIMEOUT <querytimeout> |
CONCURRENT SESSIONS <concsessions> |
SECURITY LABEL {'<seclabel>|PUBLIC::'} |
AUDIT CATEGORY {NONE|'<category>[,<category>…]'}
COLLECT HISTORY {ON|OFF|DEFAULT} |
ALLOW CROSS JOIN {TRUE|FALSE|NULL} |
ACCESS TIME {ALL|DEFAULT|(<access_time>[,<access_time>…])}
여기서 <seclabel>은 다음을 나타냅니다.
[<level>]:<category>[,<category>…]:[<cohort>[,<cohort>…]
여기서 <access_time>은 다음을 나타냅니다.
DAY { ALL | <day>[,<day>…] } [ START <time> END <time> ]

입력

이 명령의 입력은 다음과 같습니다.
표 1. CREATE USER 입력
입력 설명
<username> 작성되는 사용자 계정의 이름입니다. 이 이름은 전역 오브젝트 간에 고유해야 합니다. 즉, 다른 사용자 또는 데이터베이스, 그룹, 스케줄러 규칙이 이를 공유할 수 없습니다.
PASSWORD 이 계정의 비밀번호입니다. 비밀번호 없이 사용자를 작성하려면 NULL을 지정하십시오. NULL은 기본값입니다.

데이터베이스 사용자 계정을 변경할 때 비밀번호를 지정할 수 있지만, 비밀번호는 LOCAL 인증에만 사용됩니다. LOCAL 인증을 사용하는 경우, 사용자는 비밀번호가 있어야 로그온할 수 있습니다. 널(NULL) 비밀번호는 허용되지 않습니다. LDAP 또는 Kerberos에서 LOCAL로 인증을 변경하는 경우에는 ALTER USER 명령을 사용하여 사용자의 비밀번호를 지정하십시오.

_t_user 테이블에 액세스할 수 있는 특권이 있는 사용자는 다음 명령을 실행하여 비밀번호가 널(NULL)인 모든 사용자를 찾을 수 있습니다.
SELECT * FROM _t_user WHERE passwd is null
EXPIRE PASSWORD 처음 로그인한 이후 비밀번호를 변경하도록 사용자에게 강제합니다.
PASSWORDEXPIRY 비밀번호가 유효한 일 수입니다. 옵션을 지정하지 않거나 0 값을 지정하면 비밀번호가 만료되지 않습니다. 비밀번호가 만료되면 데이터베이스에 다음과 같은 메시지가 표시됩니다Restricted Session. User password has expired사용자가 다음에 데이터베이스에 로그인할 때 사용합니다. 전체 기능을 다시 사용하려면 사용자가 계정 비밀번호를 변경해야 합니다(예: ALTER USER 명령을 사용하여).

만기는 로컬로 인증된 계정에 사용됩니다. 사용자 계정에 대한 만기를 설정하지 않은 경우, 계정 비밀번호는 사용자가 구성원인 데이터베이스 그룹에 대한 만기가 있거나 시스템 전체 만기가 설정된 경우에 만료될 수 있습니다.

AUTH 사용자가 사용하는 인증 유형입니다.
로컬
LOCAL 인증입니다.
기본값
연결에 대해 지정된 인증 유형(LOCAL, LDAP 또는 KERBEROS)입니다.
SYSID 새 사용자 계정과 연관되는 사용자 ID입니다. 기본값은 다음 중에서 큰 값입니다.
  • 100년
  • 현재 최상위 사용자 ID 더하기 1
IN GROUP 사용자가 새 구성원으로 추가될 사용자 그룹입니다.
IN RESOURCEGROUP 사용자가 지정될 자원 그룹입니다.
VALID UNTIL 이 사용자 계정이 만료되는 날짜(및 선택사항으로 시간)입니다.
DEFPRIORITY 사용자가 제출한 쿼리의 기본 우선순위입니다.
MAXPRIORITY 사용자가 제출한 쿼리의 최대 우선순위입니다.
ROWSETLIMIT 사용자가 작성한 쿼리가 리턴될 수 있는 최대 행 수입니다. 값은 다음과 같습니다.
  • 1 - 2,147,483,647 범위의 숫자
  • 행 수가 무제한이면 0(기본값임)
SESSIONTIMEOUT 시스템이 세션을 종료하기 전에 해당 세션이 유휴 상태일 수 있는 시간(분)입니다. 값은 다음과 같습니다.
  • 1 - 35,791,394 범위의 숫자
  • 시간(분)이 무제한이면 0(기본값임)
QUERYTIMEOUT 시스템이 관리자에게 알리기 전에 쿼리가 실행될 수 있는 시간(분)입니다. 값은 다음과 같습니다.
  • 1 - 35,791,394 범위의 숫자
  • 시간(분)이 무제한이면 0(기본값임)

발행된 메시지를 관리자가 수신하려면 RunAwayQuery 이벤트 규칙이 사용되어야 합니다. 이 규칙은 IBM® Netezza® 시스템 관리자 가이드에 설명되어 있습니다.

CONCURRENT SESSIONS 이 사용자가 보유할 수 있는 최대 동시 세션 수입니다. 값은 다음과 같습니다.
  • 1 - 35,791,394 범위의 숫자
  • 세션 수가 무제한이면 0(기본값임)
설정이 0인 경우, 사용자가 구성원인 그룹이 계속 한계를 부과할 수 있습니다. 사용자가 여러 그룹의 구성원이면 최소 설정이 적용됩니다.
SECURITY LABEL 사용자의 보안 레이블입니다. 기본값은 PUBLIC::입니다. 레이블의 ID가 기타 사용자 절과 충돌하지 않도록 레이블을 작은따옴표로 묶어야 합니다.
AUDIT CATEGORY 사용자의 감사 로깅 중에 보안 레이블에 추가되는 하나 이상의 감사 범주입니다.
COLLECT HISTORY 시스템이 이 사용자의 세션에 대해 실행기록 데이터를 수집하는지 여부입니다.
켜짐
COLLECT HISTORY가 ON으로 설정된 데이터베이스에 사용자가 연결된 경우에만 실행기록을 수집합니다.
OFF
사용자에 대해 실행기록을 수집하지 않습니다.
기본값
COLLECT HISTORY가 ON으로 설정된 데이터베이스에 사용자가 연결된 경우에만, 그리고 다음 기준 중 하나가 적용되는 경우에 사용자에 대해 실행기록을 수집합니다.
  • 이 사용자가 사용자 그룹의 구성원이 아닙니다.
  • 이 사용자가 구성원인 모든 사용자 그룹의 COLLECT HISTORY가 DEFAULT로 설정되어 있습니다.
  • 이 사용자가 COLLECT HISTORY가 ON으로 설정된 최소한 하나의 사용자 그룹의 구성원입니다.
ALLOW CROSS JOIN 사용자가 명시적 교차 조인을 수행할 수 있는지 여부입니다.
TRUE
사용자가 명시적 교차 조인을 수행할 수 있습니다.
FALSE
사용자가 명시적 교차 조인을 수행할 수 없습니다.
널(null)
사용자가 ALLOW CROSS JOIN이 FALSE로 설정된 하나 이상의 사용자 그룹의 구성원이 아니면, 사용자가 명시적 교차 조인을 수행할 수 있습니다.
ACCESS TIME 시스템에서 사용자의 세션 시작이 허용된 경우:
모두
사용자가 임의의 요일에 임의의 시간에 세션을 시작할 수 있습니다.
기본값
사용자가 구성원인 그룹의 액세스 시간 설정 조합은 사용자가 세션을 시작할 수 있는 시점을 판별합니다. 예를 들어, 사용자가 두 그룹의 구성원이고 그 중 하나가 ACCESS TIME '1,2,3'을 지정하며 다른 하나가 ACCESS TIME '5,6,7'을 지정하는 경우 사용자는 수요일(네째 날)에만 세션을 시작할 수 있습니다.
<access_time>
각 액세스 시간 하위 절은 사용자가 세션을 시작할 수 있는 하나 이상의 요일 및 일회성 간격을 지정합니다. 각 요일은 SQL 요일 번호(1 = 일요일, 7 = 토요일 등)로 표시됩니다. ALL 키워드는 1,2,3,4,5,6,7일을 지정하는 것과 동등합니다. 선택적으로 액세스 시간 하위 절이 하나의 바운드 시간을 포함할 수 있습니다. 바운드 시간이 지정되어 있지 않으면 그룹이 지정된 요일에 시간 구애 없이 세션을 작성할 수 있습니다.

출력

CREATE USER 명령의 출력은 다음과 같습니다.
테이블 2. CREATE USER 출력
출력 설명
CREATE USER 명령이 성공적으로 완료되었습니다.

권한

명령 실행:
  • SECURITY LABEL, AUDIT CATEGORY 또는 COLLECT HISTORY 옵션을 지정하는 경우에는 보안 관리 특권이 있어야 합니다.
  • 기타 옵션 중 하나를 지정하는 경우에는 다음 기준 중 최소한 하나를 충족해야 합니다.
    • 관리 사용자입니다.
    • 데이터베이스 또는 스키마의 소유자입니다.
    • 계정에 사용자 작성 특권이 있습니다.
  • IN GROUP 옵션을 지정하는 경우, 대응되는 그룹 또는 그룹 오브젝트 클래스에 대한 나열 액세스 권한도 있어야 합니다.

사용량

샘플 사용법은 다음과 같습니다.
  • 사용자가 처음 로그인할 때 변경되어야 할 비밀번호로 사용자 계정을 작성합니다.
    MYDB.SCH1(USER)=> CREATE USER david WITH 
      PASSWORD 'jw8s0F4' EXPIRE PASSWORD;
  • 60일 이후 만료되는 비밀번호로 사용자 계정을 작성합니다.
    MYDB.SCH1(USER)=> CREATE USER sales_usr WITH 
      PASSWORD 'Temp123!' PASSWORDEXPIRY 60;
  • 2003년 1월 1일 오후 1시에 만료되는 사용자 계정을 작성합니다.
    MYDB.SCH1(USER)=> CREATE USER miriam VALID
      UNTIL 'Jan 1 2003 13:00';
  • 감사 범주로 사용자 계정을 작성합니다.
    CREATE USER bob WITH AUDIT CATEGORY top;
  • 월요일에서 금요일에 9시 - 13시 사이 및 수요일에 14시 - 17시 사이에만 세션을 시작할 수 있는 사용자 계정을 작성합니다.
    CREATE USER bob WITH ACCESS TIME (2,3,4,5,6 START 9:00 
      END 13:00, 4 START 14:00 END 17:00);