콘텐츠로 이동

접속 연결 및 해제

접속 연결 및 해제#

접속 연결(CONNECT)#

명시된 사용자 ID로 Altibase에 연결한다. 첫 연결 실패 시 CONNECT 명령어는 사용자 ID나 패스워드를 다시 프롬프트(prompt) 하지 않는다.

CONNECT [logon][nls] [AS SYSDBA];  
logon: userID[/password]  
nls: NLS=character_set
  • userID/password Altibase에 연결하고자 하는 사용자의 id와 패스워드

  • NLS=character_set 문자집합

    iSQL> CONNECT sys/manager NLS=US7ASCII
    Connect success.
    
  • AS SYSDBA AS 절은 SYS 사용자가 sysdba 관리자 모드로 서버에 접속하는 것을 허용한다.

    CONNECT가 성공하면 현재의 세션을 종료하고 명시된 사용자 ID와 패스워드, altibase.properties 내의 프로퍼티 정보를 사용해서 서버에 접속한다. 따라서 이전의 세션 정보는 없어진다.

    예를 들어 altibase.properties의 AUTOCOMMIT 모드가 TRUE였고, iSQL에서 AUTOCOMMIT 모드를 FALSE로 변경하여 쿼리를 수행하다가 이 CONNECT문을 수행하였다면 AUTOCOMMIT 모드는 altibase.properties 의 AUTOCOMMIT 프로퍼티에 의하여 TRUE로 변경된다.

    CONNECT가 실패한다면 이전의 세션은 종료되고 서버와의 연결이 끊어진 상태가 된다. 즉, 이후에 수행되는 SQL문의 결과는 모두 "Not connected." 이다. 만약, 다시 서버와 연결을 시도할 때는 CONNECT userID/password [AS SYSDBA];를 수행한다.

    $ isql
    -------------------------------------------------------
         Altibase Client Query utility.
         Release Version 7.3.0.0.1
         Copyright 2000, Altibase Corporation or its subsidiaries.
         All Rights Reserved.
    -------------------------------------------------------
    Write Server Name (default:127.0.0.1) :
    Write UserID : SYS
    Write Password :
    ISQL_CONNECTION = TCP, SERVER = 127.0.0.1, PORT_NO = 20300
    iSQL> SHOW USER;
    User : SYS
    iSQL> CREATE USER altiadmin IDENTIFIED BY altiadmin1234;
    Create success.
    iSQL> CONNECT altiadmin/altiadmin1234;
    Connect success.
    iSQL> SHOW USER;
    User : ALTIADMIN
    iSQL> CREATE TABLE altitbl(i1 INTEGER, i2 CHAR(5));
    Create success.
    iSQL> SELECT * FROM tab;
    TABLE NAME                               TYPE
    ---------------------------------------------
    ALTITBL                                  TABLE
    .
    .
    .
    33 row selected.
    iSQL> CONNECT sys/manager;
    Connect success.
    iSQL> SHOW USER;
    User : SYS
    iSQL> CREATE TABLE systbl(i1 INTEGER, i2 CHAR(5));
    Create success.
    iSQL> SELECT * FROM tab;
    USER NAME       TABLE NAME        TYPE
    -----------------------------------------------
    SYSTEM_       SYS_COLUMNS_      SYSTEM TABLE
    SYSTEM_       SYS_CONSTRAINTS_  SYSTEM TABLE
    .
    .
    .
    ALTIADMIN       ALTITBL             TABLE
    SYS             SYSTBL              TABLE
    .
    .
    .
    93 rows selected.
    

주의사항#

사용자 이름에 소문자, 특수 문자 또는 공백이 포함된 경우 큰따옴표를 사용해야 한다.

iSQL> CONNECT "user name";

SSL 접속#

서버 전용 모드#

서버 전용 모드(SSL_CLIENT_AUTHENTICATION 프로퍼티 값이 0으로 설정)에서 개인 인증서를 사용하는 경우, 서버에서 클라이언트의 인증을 수행하지 않기 때문에 클라이언트 인증서와 개인키 파일의 위치를 지정할 필요가 없다.

서버에서 제공하는 인증서를 검증하기 위해서 -ssl_verify 옵션을 활성화시키고, 서버의 공개키(public key)가 포함된 CA 인증서 파일의 위치를 지정해야 한다.

$ export ISQL_CONNECTION=SSL
$ isql -s localhost -u sys -p MANAGER
또는
$ isql -s localhost -u sys -p MANAGER -ssl_verify -ssl_ca ~/cert/ca-cert.pem

상호 인증 모드#

상호 인증 모드(SSL_CLIENT_AUTHENTICATION 프로퍼티 값이 1로 설정)로 개인 인증서를 사용하는 경우, 서버에서 클라이언트 인증을 수행한다. 따라서 서버에 제공하는 클라이언트의 인증서와 개인키 파일의 위치를 지정해야 한다.

서버에서 제공하는 인증서를 검증하기 위해서는 -ssl_verify 옵션을 활성화시키고, 서버의 공개키가 포함된 CA 인증서 파일의 위치를 지정해야 한다.

$ export ISQL_CONNECTION=SSL
$ isql -s localhost -u sys -p MANAGER \
-ssl_cert ~/cert/client-cert.pem \
-ssl_key ~/cert/client-key.pem
또는
$ isql -s localhost -u sys -p MANAGER \
-ssl_verify -ssl_ca ~/cert/ca-cert.pem \
-ssl_cert ~/cert/client-cert.pem \
-ssl_key ~/cert/client-key.pem

접속 해제#

현재 세션을 종료하고 서버와의 연결을 끊는다. 이후에 수행되는 SQL문의 결과는 모두 "Not connected."이며, 다시 서버와 연결을 시도할 때는 CONNECT userID/password;를 수행한다.

DISCONNECT;
iSQL> INSERT INTO systbl VALUES(1, 'A1');
1 row inserted.
iSQL> INSERT INTO systbl VALUES(2, 'A2');
1 row inserted.
iSQL> SELECT * FROM systbl;
SYSTBL.I1   SYSTBL.I2  
--------------------------
1           A1     
2           A2     
2 rows selected.
iSQL> DISCONNECT;
Disconnect success.
iSQL> INSERT INTO systbl VALUES(3, 'A3');
[ERR-91020 : No Connection State]
iSQL> SELECT * FROM systbl;
[ERR-91020 : No Connection State]
iSQL> CONNECT sys/manager;
Connect success.

NOLOG 옵션으로 iSQL 실행#

'/NOLOG' 옵션은 대상 데이터베이스에 접속하지 않고 iSQL을 실행하기 위해 제공된다. 이 옵션을 사용하려면, 서버에 접속하지 않더라도 서버 IP 주소와 포트 번호를 반드시 입력해야 한다 .

isql -s localhost -port 20300 /NOLOG

iSQL을 구동한 후 SQL 구문을 수행하려면, CONNECT 명령어로 대상 데이터베이스 사용자 계정과 비밀번호를 입력하여 데이터베이스에 접속한 이후 가능하다.