SQL 감사 로그 설정
SQL과 감사 로깅
다음 가이드는 Canvas 감사 로깅 기능을 SQL과 함께 사용하는 예시입니다.
기본 사용법/일반 설정
-
새 프로젝트 생성
-
프로젝트 속성을 열고 감사 로그 기능을 활성화 하세요
-
페이지에 감사 로그 테이블 오브젝트 추가
-
프로젝트 실행
-
감사 로그 테이블에서 검색 버튼을 눌러 항목을 확인하세요. 버튼을 누르기 전에는 어떤 항목도 보이지 않습니다.
기록된 동작의 전체 목록은 동작 기록 부록 페이지를 참조하세요.
기본 사용법 및 설정 - 외부 SQL 서버
Xpanel에서 SQLite의 기본 데이터베이스 유형은 로컬 파일을 사용합니다. 이 옵션을 선택하면 SQL을 사용하여 데이터에 접근할 수 없습니다. 대신, 감사 로그 테이블에서 데이터를 보거나 감사 로그 테이블의 내보내기 버튼을 사용하여 CSV 파일로 내보낼 수 있습니다.
다른 데이터베이스 종류를 선택한다면 데이터는 외부 SQL 데이터베이스에 저장됩니다. 이를 위해 사용자는 반드시 Canvas 외부에 별도의 SQL 데이터베이스를 구축해야 하며, Xpanel과 그 SQL 서버 간의 연결이 유효한지 확인해야 합니다.
방화벽 설정에 의해 SQL 포트가 막히지 않도록 유의하여 주시기 바랍니다. 각 SQL은 기본적으로 다른 포트 번호를 사용합니다.
사용자는 SQL 서버에 지정된 이름으로 데이터베이스를 직접 생성해야 합니다. 이 예시에서는 audit_event_database라는 이름을 사용합니다. 어떤 SQL 서버든 SQL 클라이언트에서 CREATE DATABASE audit_event_database; 명령어를 실행하여 이 데이터베이스를 생성할 수 있습니다.
프로젝트가 생성되면 audit_event 라는 이름의 테이블이 지정된 데이터베이스에 자동으로 생성됩니다.
온라인 시뮬레이터를 사용 시 외부 SQL은 동작하지 않습니다. 모든 감사 로그 항목은 RAM에 저장되며 잘못된 설정을 하여도 동작이 되므로 SQL 연결을 테스트하기 위해 시뮬레이터를 사용하지 마십시오.
데이터베이스 종류
데이터베이스 예제는 아래에 나와 있습니다
MySQL
- 다음 링크에서 MySQL 설치파일을 다운로드 합니다. MySQL :: Download MySQL Installer


-
설치파일을 실행합니다.
-
설치 종류를 Full로 선택합니다.
서버 외에도 설치파일이 제공하는 클라이언트 툴이 데이터베이스를 확인하는데 용이합니다.

-
나머지 설치 과정을 진행합니다. 다음 이미지와 같이 기본 옵션이 아닌 항목을 반드시 적용하여 주시기 바랍니다.
반드시 Legacy Authentication Method를 선택하여 주시기 바랍니다. 선택하지 않을 경우 서버나 개별 사용자를 추후에 다시 수정해야 합니다.

root 비밀번호를 설정한 뒤 해당 비밀번호를 잊지 않도록 유의하여 주시기 바랍니다.

새 사용자를 생성합니다. (본 매뉴얼에서는 remote를 사용합니다.) 사용자의 비밀번호를 설정하여 그 비밀번호를 기억해둡니다. 사용자에게 제한된 권한을 부여하도록 **DB 관리자(DB Manager)**를 선택하는 것이 좋습니다. 이 권한은 나중에 수정할 수 있습니다.
참고: 기본적으로 root 계정은 localhost에서만 연결할 수 있으므로 별도의 계정을 사용하는 것을 강력히 권장합니다.

서버를 Windows Service로 설치하여 수동으로 서버 시작/중지를 하지 않아도 되도록 합니다.

Connect To Server 단계에서는 이전에 설정한 root 계정의 비밀번호를 입력한 뒤, 확인을 선택한 후 다음을 선택합니다.

설치 완료 후 Workbench 또는 Shell을 실행하지 않아도 되므로 체크박스를 해제합니다.

- 설치 완료 후, MySQL 서버는 백그라운드에서 실행됩니다. 확인을 하고자 한다면 작업관리자에서 “MySQL”과 관련된 항목을 찾으시기 바랍니다.

- 시작메뉴에서 MySQL Workbench를 검색해 실행합니다.

- 하단 이미지를 클릭하여 로컬 서버 인스턴스에 접속합니다.

- Navigator 창에서 Schemas 탭으로 이동합니다. 해당 서버에 있는 모든 데이터베이스와 테이블을 표시합니다.

- 데이터베이스 이름을 지정합니다. 이 예제에서는 audit_event_database를 사용합니다. 다음과 같은 명령을 실행합니다:
CREATE DATABASE audit_event_database;. 명령을 실행하려면 명령어를 Query 1 영역에 입력하고 번개 모양의 아이콘을 클릭합니다.

- 쿼리를 성공하면 다음과 같이 Output 창에 성공했다는 메시지가 표시됩니다.

이후 “Schemas” 탭을 새로고침 하면 새 데이터베이스가 생성된 것을 확인할 수 있습니다.

- Canvas 프로젝트에서 프로젝트 속성 창을 열고 감사 로그 영역에서 다음과 같이 설정을 수정합니다.

- 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 계정의 새 비밀번호를 설정하고 원격 머신에서의 접근을 허용하세요.
참고: 실제 운영 환경에서는 원격 접근을 위해 제한된 권한을 가진 별도의 계정을 만드는 것이 좋습니다. 하지만 테스트 및 개발용으로는 root 계정을 사용할 수 있습니다.

- 설치가 완료된 다음 HeidiSQL 클라이언트를 사용해 서버에 연결할 수 있습니다.

- New 버튼을 클릭해 새 연결을 설정합니다. 위에서 설정한 root 계정의 비밀번호를 입력하고 Open을 클릭합니다.

- 좌측의 트리 뷰에서 빈 공간을 우클릭한 뒤, Create new -> Database를 클릭합니다.

- 데이터베이스의 이름을 입력하고 OK를 클릭합니다.

- Canvas에서 프로젝트 속성 창을 열고, 감사 로그 영역에서 다음과 같이 설정합니다. MariaDB를 설치할 때 생성한 사용자 패스워드와, 데이터베이스 이름을 사용합니다.

- 프로젝트를 저장하고 실행합니다. 데이터베이스에 audit_event 테이블이 생성된 것을 확인할 수 있습니다.

사용자 수정
root 계정을 사용하고 싶지 않다면 HeidiSQL에서 Tools -> User Manager로 이동해 새 유저를 생성합니다.

PostgreSQL
- 설치
다음 링크에서 사용중인 OS에 맞는 설치파일을 다운로드 합니다. Community DL Page
다운로드한 .exe파일을 실행합니다. (postgresql-version-OS version.exe)

설치 단계를 계속 수행합니다.
pgAdmin 설치를 권장합니다.

관리자 패스워드와 포트 번호를 설정합니다.


설치를 완료합니다.
- 서버 및 데이터베이스 설정
PgAdmin을 실행합니다.

Server를 우클릭한 뒤 Register > Server를 클릭합니다.

서버의 이름을 입력합니다.

Connection 탭으로 이동하여 Host name/address 및 기타 필요한 내용을 입력합니다.
필요한 경우 다른 매개변수를 설정합니다.

Save를 클릭합니다.
서버를 우클릭하고 Create > **Database…**를 선택합니다.

데이터베이스 이름을 입력합니다.
필요한 경우 다른 매개변수를 설정합니다.

데이터베이스를 선택하고 확장한 후 Schemas > Public으로 이동하여 Tables를 마우스 오른쪽 버튼으로 클릭합니다. Create > **Table...**을 클릭하세요.

General 탭에 테이블 이름을 입력하세요.
필요한 경우 다른 매개변수를 설정합니다.
Save를 눌러 테이블 설정을 완료하세요

- HMI 장비를 “pg_hba.conf” 파일에 호스트로 등록하기
HMI의 IP 주소 및 서브넷마스크를 확인합니다.
HMI의 IP 주소를 확인하려면 네트워크 설정퀵 스타트 가이드를 참조하세요.

PostgreSQL 설치경로 내의 Data 폴더 안에서 pg_hba.conf 파일을 메모장으로 실행합니다.

호스트의 IP 주소를 설정 파일에 등록합니다.
자세한 설정 방법은 PostgreSQL 공식 매뉴얼을 참고하시기 바랍니다. (Link: 21.1. The pg_hba.conf File )
호스트의 IP 주소를 등록하면 다음과 같은 형식이 됩니다.
