전체 글

전체 글

    [RedShift] 사용자 및 권한 관리 (feat. 계정 삭제시 오류)

    개요 Redshift는 사용자와 권한을 관리하는 방법이 조금 복잡하여 권한 부여 및 삭제에서 삽질한(?) 내용을 공유해보겠습니다. 사용자와 그룹 Redshift에서는 Postgres와 조금 차이가 있는데 접근제어를 위해 role의 개념을 사용하지 않고 사용자와 그룹을 사용합니다. 그리고 아래의 규칙을 가집니다. 사용자만 그룹의 하위에 속할 수 있습니다. 즉, 그룹은 다른 그룹에 속할 수 없습니다. 그룹이 아닌 사용자가 관계를 소유합니다. 사용자와 그룹에 별도로 권한이 부여될 수 있습니다. 사용자는 자신이 속한 그룹의 모든 권한을 자동으로 상속합니다. 계정 계정생성 CREATE USER name [ [ WITH ] option [ ... ] ] where option is CREATEDB | NOCREAT..

    [MySQL] 복제 구성을 위한 바이너리 로깅 형식

    개요 MySQL의 복제 데이터 포맷에는 어떤 방식이 있는지 알아보고 간단한 테스트를 통해 유의점을 확인해보겠습니다. 복제 포맷 MySQL의 복제 포맷에는 Statement, Row, Mixed 3가지 형태가 있습니다. Statement 방식은 MySQL 바이너리 로그 도입 당시부터 존재한 복제 포맷이며 5.7.7 이후 버전 부터는 Row 형태가 기본 포맷으로 변경되었습니다. Statement : 명령문 기반의 로깅 방식 Row : 행 기반의 데이터 로깅 방식 Mixed : Statement와 Row의 장점을 혼합한 로깅 방식 Statement 기반 바이너리 로그 포맷 Statement 방식의 경우 실행된 SQL 문을 그대로 바이너리 로그에 저장하는 방식입니다. 다수의 데이터가 수정된 경우에도 단순히 쿼리..

    [MySQL] Docker-compose를 이용한 초간단 서버 구성

    개요 Docker-Compose로 간단하게 MySQL 테스트 환경을 구성해보도록 하겠습니다. 사전에 Docker 및 Docker-Compose에 대한 이해가 필요합니다. 테스트 환경 Centos7 Docker 20.10.14 Docker-compose 1.29.2 구성 docker 구성을 위한 디렉토리를 생성합니다. $ mkdir mysql_test $ cd mysql_test 컨테이너 내의 파일을 동기화할 디렉토리를 mysql_test 하위에만들어 줍니다. $ mkdir db -- my.cnf 파일 관리를 위한 디렉토리 $ mkdir db/conf.d -- mysql Data를 저장할 디렉토리 $ mkdir db/data docker-compose.yml mysql_test 디렉토리 하위에 docker..

    [MySQL] 클러스터 인덱스 미생성 테이블

    개요 MS-SQL에서는 클러스터 인덱스가 없는 힙 테이블이란 개념이 존재했었는데 MySQL은 테이블 생성 시 내부적으로 클러스터 인덱스가 생성되어 어떤 경우에 해당 인덱스가 생성되는지 알아보겠습니다. 클러스터 인덱스가 없는 테이블 생성 MySQL의 InnoDB의 경우 Primary Key. 즉 클러스터 인덱스가 없는 테이블을 생성할 경우 칼럼이 NOT NULL로 구성된 UNIQUE KEY가 있을 경우 클러스터로 사용합니다. 별도의 키가 없을 경우에는 GEN_CLUST_INDEX라는 이름의 클러스터 인덱스가 생성됩니다. 해당 인덱스는 6바이트 크기로 물리적으로 저장된 순서로 인덱스 값이 부여됩니다. case1. 인덱스 미생성 시 CREATE TABLE non_index( col1 int(11) NULL, ..