Notice
Recent Posts
Recent Comments
Link
250x250
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- MariaDB기본디렉토리변경
- 대량dml튜닝
- job관리
- num_index_keys
- 오블완
- 오라클
- PROFILE EXPDP
- autocommit설정
- Connect Storage Engine
- 실제플랜조회
- DATABASELINK
- mariaDB설치오류
- 오라클인덱스힌트
- sqlp공부방법
- public synonym EXPDP
- 오라클기동
- 티스토리챌린지
- 통계정보백업
- 통계정보복구
- sqlp합격후기
- sqlp시험일정
- 리눅스
- postgreql 오브젝트 조회
- oracle
- inlist
- ssh접속오류
- Linux
- datadir 변경
- 데이터csv생성
- mariaDB
Archives
- Today
- Total
IT study
[PostgreSQL] 테이블 스키마, 소유자 및 오브젝트 소유자 변경 본문
728x90
반응형
테이블 스키마, 소유자 및 오브젝트 소유자 변경 관련 쿼리입니다.
간단한 문구로 소유자 변경이 가능합니다.
테이블 소유자 변경
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_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0, 64-bit
실습내용 : User1이 소유한 testdb 스키마의 mytable을 user2로 소유권 변경
세션1 - mytable insert
세션2 - owner 변경 진행
Session3 - lock 조회
모든 세션은 postgres : superuser 로 진행
*/
--session1 : 트랜잭션활성화하여 테이블에 insert 실행
begin;
insert into testdb.my_table values(2,'d',1);
--session 2 : my_table의 소유자 변경
alter table testdb.my_table owner to user2;
----session 2 대기진행중
--session3 : lock 조회
SELECT
w.query AS waiting_query,
w.pid AS waiting_pid,
w.usename AS waiting_user,
w.wait_event_type,
l.query AS locking_query,
l.pid AS locking_pid,
l.usename AS locking_user,
t.schemaname || '.' || t.relname AS tablename,
l.wait_event_type
FROM pg_stat_activity w
JOIN pg_locks l1 ON w.pid = l1.pid AND NOT l1.granted
JOIN pg_locks l2 ON l1.relation = l2.relation AND l2.granted
JOIN pg_stat_activity l ON l2.pid = l.pid
JOIN pg_stat_user_tables t ON l1.relation = t.relid;

-> insert 트랜잭션에 의해 소유자 변경 세션이 lock 대기상태가됨을 확인
728x90
반응형
'DATABASE > Postgresql' 카테고리의 다른 글
[PostgreSQL] 오브젝트, 데이터베이스, 스키마, ACL 등 각 종 권한 조회 스크립트 (0) | 2024.11.18 |
---|---|
[Postgresql] 각종 object 조회하기 (0) | 2024.11.15 |
[PostgreSQL] PANIC: could not locate a valid checkpoint record 해결 [pg_resetwal] (1) | 2024.11.14 |
[Postgresql] pg 아키텍쳐1 - Shared Memory, Local Memory, Process (2) | 2024.10.21 |
[PostgreSQL] routines ( function, procedure ..) 기본 권한 설정과 관리 (3) | 2024.09.30 |