DBA

개인 학습, 작업 기록용입니다. 올바르지 않은 정보가 있다면 댓글주시면 감사하겠습니다!

DATABASE 32

[PostgreSQL] 오브젝트, 데이터베이스, 스키마, ACL 등 각 종 권한 조회 스크립트

테이블, 시퀀스, 함수, 트리거 등 각종 오브젝트에 대한 권한 조회입니다 -- 유저 grant role 조회 select grantor::regrole::varchar(100) as grantor , member::regrole::varchar(100) as grantee , string_agg(roleid::regrole || (case when admin_option = true then '(★)' else '' end),', ' order by roleid::regrole,admin_option) as grant_roles -- admin_option: is_grantable from pg_catalog.pg_auth_members pam where member::regrole::varchar(10..

DATABASE/Postgresql 2024.11.18

[Oracle] 패드워드 기한 정책 확인 및 변경, 잠금 해제

개발서버 계정 잠금 해제 건이 있어서 확인 후 처리 프로파일내에 패스워드 만료 기간이 지정되어있어서 계정이 잠김개발용이라 패스워드 만료 제한을 풀고 계정 unlock함 --스키마 profile 확인SELECT username, default_tablespace, temporary_tablespace, account_status, profile FROM dba_userswhere username = 'db_user';-- 프로파일 패스워드 리밋 기한 조회SELECT RESOURCE_NAME, LIMITFROM DBA_PROFILESWHERE PROFILE = 'DEFAULT' AND RESOURCE_TYPE = 'PASSWORD';--UNLIMITED으로 변경ALTER PROFILE DEFAULT LIMI..

DATABASE/Oracle 2024.11.17

[PostgreSQL] 테이블 스키마, 소유자 및 오브젝트 소유자 변경

테이블 스키마, 소유자 및 오브젝트 소유자 변경 관련 쿼리입니다. 간단한 문구로 소유자 변경이 가능합니다. 테이블 소유자 변경 alter table {table_name} owner to {new_role}; 테이블 스키마 변경 ALTER TABLE {table_name} SET SCHEMA {new_schema_name}; 특정 소유자가 소유한 모든 객체 owner 변경 REASSIGN OWNED BY {old_role} TO {new_role}; 하지만 ! 변경하려는 오브젝트가 사용중인 트랜잭션이 있다면.. Lock대기가 발생하겠죠 운영중에는 영향도를 파악하여 진행해야합니다. 관련 실습예제입니다./* 버전 : PostgreSQL 15.8 (Ubuntu 15.8-1.pgdg24.04+1) on x86_..

DATABASE/Postgresql 2024.11.16

[Postgresql] 각종 object 조회하기

유저삭제시에 해당 유저가 소유한 객체와 부여받은 모든 권한이 제거되어야하므로 우선 소유한 객체를 확인하는 용도로 쿼리를 정리하였습니다. pg_catalog를 활용한 테이블, 뷰, 시퀀스, 인덱스, 함수, 프로시저, 트리거 등 오브젝트의 스키마, 소유자를 조회하는 쿼리입니다. select * from ( -- 테이블, 뷰, 시퀀스, 인덱스 ,Mview, toast table, foreign table 등 조회 SELECT r.rolname as owner, n.nspname as schema_nm , case when c.relkind = 'r' then 'table' when c.relkind = 'v' then 'view' when c.relkind = 'S' then 'sequence' when c...

DATABASE/Postgresql 2024.11.15

[PostgreSQL] PANIC: could not locate a valid checkpoint record 해결 [pg_resetwal]

스펙을 최대한 낮춰서 EC2 ubuntu환경에 postgresql 15 설치하다 사용 중 PG깨지는 현상이 발생했다.. 가장 큰 문제는 wal log를 수용할 디스크공간이 없던것!!psql 을 접속할 수 없어서 아무생각없이 wal log폴더 내 데이터 삭제해버림 ㅠ  그 결과 Postgresql 서버가 올라오지 못하고 DB시스템이 shut down됨!! 2024-11-14 16:05:19.069 KST [7685] LOG: starting PostgreSQL 15.8 (Ubuntu 15.8-1.pgdg24.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0, 64-bit2024-11-14 16:05:19.071 K..

DATABASE/Postgresql 2024.11.14

[Postgresql] pg 아키텍쳐1 - Shared Memory, Local Memory, Process

Shared Memory 데이터베이스 기동 시 공용 메모리 공간인 Shared Memory가 할당모든 backend 프로세스들에 의해 공유되는 공간 1) Shared Buffers데이터 변경 사항을 Block 단위로 저장하여 물리적 I/O를 하지 않아 데이터 처리를 빠르게 함postgres=# show shared_buffers; shared_buffers---------------- 128MB --* Shared buffer 크기 : 128MB = 16384 * 8KBpostgres=# select name, setting from pg_settings where name = 'shared_buffers'; name | setting----------------+--------- sh..

DATABASE/Postgresql 2024.10.21

[PostgreSQL] routines ( function, procedure ..) 기본 권한 설정과 관리

postgresql 의 경우 객체가 생성될 때 일부 유형의 객체에 대해 기본 권한을 부여한다.이 중 함수와 프로시저는 생성시 모든 사용자가 실행가능하여 기본 권한 설정을 관리해주어야 한다. 표 5.2. Summary of Access PrivilegesObject TypeAll PrivilegesDefault PUBLIC Privilegespsql CommandDATABASECTcTc\lDOMAINUU\dD+FUNCTION or PROCEDUREXX\df+FOREIGN DATA WRAPPERUnone\dew+FOREIGN SERVERUnone\des+LANGUAGEUU\dL+LARGE OBJECTrwnoneSCHEMAUCnone\dn+SEQUENCErwUnone\dpTABLE (and table-like..

DATABASE/Postgresql 2024.09.30

[MariaDB] CONNECT Engine 설치 및 ORACLE , MSSQL 연결하기

Connect Engine이란 ? MariaDB는 스토리지 엔진을 통해 외부 원격 데이터에 접근 가능합니다. connect engine은 외부 데이터 소스와 MariaDB 간의 연결을 위한 엔진으로 XML, CSV 나 MySQL, ORACLE, SQL Server 등 타 DBMS의 테이블을 MariaDB에서 직접 쿼리할 수 있도록 연결기능을 제공합니다. Connect Engine 설치 및 ORACLE , MSSQL 연결 1. Connect Engine 설치 [root@dbteam01 /]# yum install MariaDB-connect-engine . . . . Installed: MariaDB-connect-engine.x86_64 0:10.11.6-1.el7.centos Complete! [roo..

[MariaDB] 기본 디렉토리 datadir 변경하기 (CentOS7)

환경 : CentOS7 / 10.11.6-MariaDB MariaDB 설치하면 기본 데이터 디렉토리는 /var/lib/mysql 로 설정됩니다. 1. 기본 데이터 디렉토리 위치 확인 mariaDB 접속하여 select @@datadir; 조회하면 현재 기본 데이터 디렉토리를 확인 할 수 있습니다. [root@dbteam01 /]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 19 Server version: 10.11.6-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaD..