본문 바로가기

반응형

DB(SQL)

(82)
[DB] SQL SECURITY of PROCEDURE (DEFINER | INVOKER) (feat. mariadb | mysql) SQL SECURITY란? 프로시저나 함수를 실행할 때 사용되는 보안 컨텍스트를 정의하는 것입니다. 이 컨텍스트는 기본적으로 두 가지 옵션, DEFINER와 INVOKER 중 하나를 선택하여 설정할 수 있습니다. 1. DEFINER DEFINER 옵션은 프로시저나 함수가 그것을 생성한 사용자의 권한으로 실행됨을 의미합니다. 예를 들어, admin이라는 사용자가 어떤 테이블에 대한 SELECT 권한만을 가진 userA를 위해 프로시저를 생성했다고 가정해 봅시다. 이 프로시저는 테이블에서 데이터를 수정하는 작업을 수행합니다. 프로시저가 SQL SECURITY DEFINER로 설정되면 userA가 프로시저를 호출할 때도 admin의 권한으로 실행되므로 데이터 수정이 가능합니다. ★ 특정 사용자에게 직접적인 권..
[DB] PMM(Percona Monitoring and Management) Server 설정 (feat. 미완성된 글입니다.) 이 글은 미완성된 글입니다. 아까워서.. 놔두는 글.. 아래 링크로 접속해서 확인해주세요 pmm2 기준 https://24hours-beginner.tistory.com/499 PMM 1 기준 Server 설치 하는 방법 Mariadb 모니터링 시스템으로 PMM(Percona Monitoring and Management)을 사용해보고자 한다. Maria DB를 지원하는건 아니지만 mysql 로 호환이 가능하다고 해서 고고싱 percona에서 docs 도 제공해주고 메뉴얼도 다운로드 받을 수 있다.. 다운로드 페이지 : https://www.percona.com/downloads 다운로드 페이지에서 메뉴얼 다운로드 및 docs 링크 바로 접근 가능하다 메뉴얼 살짝 봤는데 엄청 설명이 잘되어 있다. 그러나..
[MariaDB] Create Procedure(프로시저) 루틴에는 FUNCTION 과 PROCEDURE 가 있다. 이 글은 PROCEDURE의 기본에 대해 알아보고자 한다. 프로시저(Procedure) 란? 특정 작업을 실행하기 위한 루틴이다. CALL 문을 이용해서 실행할 수 있다. SHOW PROCEDURE 프로시저 조회 https://mariadb.com/kb/en/show-procedure-status/ SHOW PROCEDURE STATUS [LIKE 'pattern' | WHERE expr] 프로시저 내용 조회 SELECT ROUTINE_SCHEMA , ROUTINE_NAME , ROUTINE_DEFINITION , ROUTINE_TYPE FROM INFORMATION_SCHEMA.ROUTINES WHERE 1=1 -- ROUTINE_DEFINITI..
[mariadb] CONVERT_TZ 사용 (feat. null return) https://mariadb.com/kb/en/convert_tz/ syntax CONVERT_TZ(dt,from_tz,to_tz) CONVERT_TZ()는 datetime 값 dt 를 from_tz 가 제공하는 시간대에서 to_tz 가 제공하는 시간대로 변환 하고 결과 값을 반환합니다. tz에는 '+09:00' 이나 'America/New_York' 등을 넣을 수 있다. example SELECT CONVERT_TZ('2016-01-01 12:00:00','+00:00','+10:00'); +-----------------------------------------------------+ | CONVERT_TZ('2016-01-01 12:00:00','+00:00','+10:00') | +-------..
[PostgreSQL] How to select the first observation in a category in PostgreSQL select distinct on(dataid, date_trunc('day', readtime)) * from university.gas_ert where readtime between '2014-01-01' and '2014-01-02' order by dataid, date_trunc('day', readtime) asc https://stackoverflow.com/questions/53604529/how-to-select-the-first-observation-in-a-category-in-postgresql How to select the first observation in a category in PostgreSQL My table contains different house IDs(dat..
[mariadb] text type default null https://jira.mariadb.org/browse/MDEV-15407 [MDEV-15407] DEFAULT NULL forced when no DEFAULT set on NULL-able column - Jira Now this starts to smell. If a column is defined as NULL-able, 10.2 will automatically append DEFAULT NULL to create statements. 10.2 `description` text COLLATE utf8_bin DEFAULT NULL 10.0 `description` text COLLATE utf8_bin Originally the column does not h jira.mariadb.org 예..
[DB] 로그파일 분할 (feat. Docker) docker 로 db를 돌릴 경우 보통 기본적으로 설치되어있는 logrotate 가 없어 로그가 분할이 안될 수 있다 그러면 어마무시하게 큰 로그파일을 만나게 되며.. 확인이 불가능하다;; ubuntu 18.04 apt install logrotate logrotate는 crontab으로 돌아가기 때문에 crontab도 없다면 isntall 당시 crontab도 같이 install 해야한다고 같이 설치할꺼냐고 물어본다. https://www.manualfactory.net/10547 Ubuntu 16.04 / logrotate 설치하고 설정하기 로그 파일 우분투(Ubuntu)는 여러 작업의 내용을 로그(Log) 파일로 남깁니다. 예를 들어 웹서버 운영과 관련된 로그는 /var/log/apache2에 있습..
[MariaDB] 외부접속시 TLS/SSL 활성화 (feat. OpenSSL) 재직하고 있는 회사에서 한 서버에 api 서버와 db 서버가 같이 있어 보안에 별로 신경을 안 썼다. 하지만 회사가 조금 커지고 서버도 더 사주셔서 웹서버와 db 서버가 실질적으로 분리되었고, 보안에 조금씩 신경 쓰게 되었다. 첫 번째로 설정한 것이 TLS/SSL 통신이다. 테스트 환경 ubuntu 18.04 MariaDB 10.5.13 TLS 설정이 필요한 이유 요약 : 기본값으로 암호화 통신을 안 해서 트래픽 탈취 등의 보안 문제가 발생할 수 있다. 기본적으로 MariaDB는 암호화하지 않고 서버와 클라이언트 간에 데이터를 전송합니다. 이는 서버와 클라이언트가 동일한 호스트에서 실행되거나 다른 수단을 통해 보안이 보장되는 네트워크에서 실행될 때 일반적으로 허용됩니다. 그러나 서버와 클라이언트가 별도의..

반응형