SQL 감사 로그 설정
기본 설정 방법
-
새 프로젝트 생성
-
[파일] - [프로젝트 속성] 창 열기
-
“런타임 옵션” - “감사 로그” 영역에서 활성화 옵션의 체크박스 선택
-
페이지에 감사 로그 테이블 오브젝트 추가
-
프로젝트 실행
-
감사 로그 테이블에서 “검색” 버튼을 눌러 내용 업데이트 진행
-
프로젝트 실행 및 중지, 버튼 사용, 로그인/로그아웃 등을 포함한 모든 사용자 동작이 기록됩니다.
기본 사용법 및 설정 - 외부 SQL 서버
“데이터베이스 종류”의 기본 값인 “SQLite”는 Xpanel 장비의 로컬 파일을 사용합니다. 이 옵션이 선택되면 SQL을 통해 데이터에 접근할 수는 없습니다. 그러나 감사 로그 테이블과 그 오브젝트에서 내보내기한 CSV 파일을 통해 내용을 확인할 수 있습니다.
다른 데이터베이스 종류를 선택한다면 데이터는 외부 SQL 데이터베이스에 저장됩니다. 이를 위해 사용자는 반드시 Canvas 외부에 별도의 SQL 데이터베이스를 구축해야 하며, Xpanel과 그 SQL 서버 간의 연결이 유효한지 확인해야 합니다.
방화벽 설정에 의해 SQL 포트가 막히지 않도록 유의하여 주시기 바랍니다. 각 SQL은 기본적으로 다른 포트 번호를 사용합니다.
사용자는 SQL 서버에 데이터베이스를 미리 생성해야 하며, 본 매뉴얼에서는 “audit_event_database”를 사용합니다. 어느 SQL 서버에서든 다음과 같은 명령을 사용해 데이터베이스를 생성할 수 있습니다. CREATE DATABASE audit_event_database;
프로젝트가 생성되면 “audit_event” 라는 이름의 테이블이 지정된 데이터베이스에 자동으로 생성됩니다. Canvas v3.0.1을 사용하는 경우, 테이블의 이름을 다른 것으로 수정하더라도 무조건 “audit_event”로 테이블이 생성되는 버그가 있으므로 유의하여 주시기 바랍니다.
온라인 시뮬레이터를 사용 시 외부 SQL은 동작하지 않습니다. 모든 감사 로그 항목은 RAM에 저장되며 잘못된 설정을 하여도 동작이 되므로 SQL 연결을 테스트하기 위해 시뮬레이터를 사용하지 마십시오.
MySQL
- 다음 링크에서 MySQL 설치파일을 다운로드 합니다. MySQL :: Download MySQL Installer
-
설치파일을 실행합니다.
-
설치 종류를 “Full”로 선택합니다. 서버 외에도 설치파일이 제공하는 클라이언트 툴이 데이터베이스를 확인하는데 용이합니다.
- 나머지 설치 과정을 진행합니다. 다음 이미지와 같이 기본 옵션이 아닌 항목을 반드시 적용하여 주시기 바랍니다.
반드시 “Legacy Authentication Method”를 선택하여 주시기 바랍니다. 선택하지 않을 경우 서버나 개별 사용자를 추후에 다시 수정해야 합니다.
root 비밀번호를 설정한 뒤 해당 비밀번호를 잊지 않도록 유의하여 주시기 바랍니다.
새 사용자를 생성합니다. (본 매뉴얼에서는 “remote”를 사용합니다.) 그 다음 그 사용자의 비밀번호를 설정하고 그 비밀번호를 기억해둡니다. “Role” 에는 “DB Manager”를 설정하는 것을 권장합니다. 해당 권한은 추후 수정이 가능합니다. 유의: 기본적으로 root 계정은 localhost에서만 접속이 가능하므로 가급적 별도의 계정을 사용하는 것을 권장합니다.
서버를 Windows Service로 설치하여 수동으로 서버 시작/중지를 하지 않아도 되도록 합니다.
Connect To Server 단계에서는 이전에 설정한 root 계정의 비밀번호를 입력한 뒤, “Check”를 누릅니다. 이후 설치 단계로 진행합니다.
설치 완료 후 Workbench 또는 Shell을 실행하지 않아도 되므로 체크박스를 해제합니다.
- 설치 완료 후, MySQL 서버는 백그라운드에서 실행됩니다. 확인을 하고자 한다면 작업관리자에서 “MySQL”과 관련된 항목을 찾으시기 바랍니다.
- 시작메뉴에서 MySQL Workbench를 검색해 실행합니다.
- 하단 이미지를 클릭하여 로컬 서버 인스턴스에 접속합니다.
- “Navigator” 창에서 “Schemas” 탭으로 이동합니다. 해당 서버에 있는 모든 데이터베이스와 테이블을 표시합니다.
- 데이터베이스 이름을 지정합니다. 이 예제에서는 “audit_event_database”를 사용합니다. 다음과 같은 명령을 실행합니다: CREATE DATABASE audit_event_database;. 명령을 실행하려면 명령어를 “Query 1” 영역에 입력하고 번개 모양의 아이콘을 클릭합니다.
- 쿼리를 성공하면 다음과 같이 “Output” 창에 성공했다는 메시지가 표시됩니다.
이후 “Schemas” 탭을 새로고침 하면 새 데이터베이스가 생성된 것을 확인할 수 있습니다.
- Canvas 프로젝트에서 프로젝트 속성 창을 열고 감사 로그 영역에서 다음과 같이 설정을 수정합니다.
- 변경사항을 저장하고 프로젝트를 실행합니다. “audit_event_database” 데이터베이스 내에 자동으로 “audit_event_table” 이라는 테이블이 생성됩니다.
새 패스워드 형식을 사용하는 경우
새 패스워드 암호화 방법을 사용하는 경우에도 연결은 가능합니다. 사용자가 기존 패스워드 암호화 방식을 사용하도록 MySQL Workbench에서 커맨드를 실행할 수 있습니다.
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
“username” 과 “password” 부분에 사용자의 계정 이름과 비밀번호를 입력합니다.
FLUSH PRIVILEGES;
라는 커맨드를 실행시켜 변경사항을 저장합니다.
설정파일을 직접 수정하여 서버의 기본 패스워드 암호화 방식을 변경할 수도 있습니다. 해당 파일의 위치 기본값은 “C:\ProgramData\MySQL\MySQL Server 8.0\my.ini” 입니다.
다음을 설정 파일에 추가하거나 수정합니다. (이미 Line 109에 동일한 내용이 존재할 수 있습니다.)
authentication_policy=mysql_native_password,,
저장 후 서버를 재시작합니다. 이미 사용자가 존재하는 경우 개별로 수정해야 할 수 있습니다.
MariaDB
- MariaDB 서버 설치파일을 다음 웹사이트에서 다운로드 받습니다. MariaDB Products & Tools Download | MariaDB 올바른 OS 버전의 파일을 선택하시기 바랍니다.
- 설치파일을 실행합니다. 다음 단계를 따라 기본 값이 아닌 항목들을 설정합니다. ‘root' 사용자가 원격 장비에서 접근이 가능하도록 패스워드를 입력합니다.
- 설치가 완료된 다음 HeidiSQL 클라이언트를 사용해 서버에 연결할 수 있습니다.
- “New” 버튼을 클릭해 새 연결을 설정합니다. 위에서 설정한 “root” 계정의 비밀번호를 입력하고 “Open”을 클릭합니다.
- 좌측의 트리 뷰에서 빈 공간을 우클릭한 뒤, “Create new” -> “Database”를 클릭합니다.
- 데이터베이스의 이름을 입력하고 OK를 클릭합니다.
- Canvas에서 프로젝트 속성 창을 열고, 감사 로그 영역에서 다음과 같이 설정합니다. MariaDB를 설치할 때 생성한 사용자 패스워드와, 데이터베이스 이름을 사용합니다.
- 프로젝트를 저장하고 실행합니다. 데이터베이스에 “audit_event” 테이블이 생성된 것을 확인할 수 있습니다.
사용자 수정
root 계정을 사용하고 싶지 않다면 HeidiSQL에서 “Tools” -> “User Manager”로 이동해 새 유저를 생성합니다.
PostgreSQL
- 설치
a. 다음 링크에서 사용중인 OS에 맞는 설치파일을 다운로드 합니다. Community DL Page
b. 설치파일을 실행합니다. (postgresql-version-OS version.exe)
c. 설치 단계를 계속 수행합니다. pgAdmin 설치를 권장합니다.
d. 관리자 패스워드와 포트 번호를 설정합니다.
e. 설치를 완료합니다.
- 서버 및 데이터베이스 설정
a. PgAdmin을 실행합니다.
b. “Server”를 우클릭한 뒤 “Register” - “Server”를 클릭합니다.
c. 서버의 이름을 입력합니다.
d. [Connection] 탭으로 이동하여 [Host name/address] 및 기타 필요한 내용을 입력합니다.
e. [Save]를 클릭합니다.
f. 서버를 우클릭하고 [Create] - [Database…]를 선택합니다.
g. 데이터베이스 이름을 입력합니다.
- HMI 장비를 “pg_hba.conf” 파일에 호스트로 등록하기
a. [Control Center] - [Settings] - [Network Settings]로 이동하여 HMI의 IP 주소 및 서브넷마스크를 확인합니다.
b. PostgreSQL 설치경로 내의 “Data” 폴더 안에서 “pg_hba.conf” 파일을 메모장으로 실행합니다.
c. 호스트의 IP 주소를 설정 파일에 등록합니다. 자세한 설정 방법은 PostgreSQL 공식 매뉴얼을 참고하시기 바랍니다. (Link: 21.1. The pg_hba.conf File ) 호스트의 IP 주소를 등록하면 다음과 같은 형식이 됩니다.