PostgreSQL 데이터베이스의 소유자 변경

Shihab Sikder 2023년6월20일
PostgreSQL 데이터베이스의 소유자 변경

REASSIGN OWNED 쿼리를 사용하여 기존 데이터베이스의 소유권을 변경할 수 있습니다. 새 사용자는 이전 소유자가 수행할 수 있었던 모든 쿼리를 수행할 수 있습니다.

Psql에서 데이터베이스 소유권 변경

데모를 위해 이전 소유자와 새 사용자로 새 데이터베이스를 만들어 보겠습니다. 그런 다음 새 사용자를 새 데이터베이스의 소유자로 지정하십시오.

데이터베이스 생성:

postgres=# create DATABASE SELL;
CREATE DATABASE
postgres=#

새 사용자 만들기:

postgres=# CREATE USER TEST_USER WITH PASSWORD '~test~';
CREATE ROLE
postgres=#

판매 테이블의 현재 소유자:

SELECT dbs.datname, roles.rolname
FROM pg_catalog.pg_database dbs, pg_catalog.pg_roles roles
WHERE dbs.datdba = roles.oid;

처음에는 postgres로 로그인했습니다. 이것은 우리의 사용자 이름이었습니다. 이제 위의 쿼리를 실행하면 Postgres 내부의 기존 데이터베이스 소유자가 표시됩니다.

  datname  | rolname
-----------+----------
 template0 | postgres
 template1 | postgres
 sell      | postgres
 postgres  | postgres
(4 rows)

테이블 Sell에 소유자 postgres가 있음을 알 수 있습니다. ’test_user’로 소유자를 변경해 봅시다.

방법은 다음과 같습니다.

ALTER DATABASE SELL OWNER TO TEST_USER;

출력은 다음과 같습니다.

postgres=# ALTER DATABASE SELL OWNER TO TEST_USER;
ALTER DATABASE
postgres=# SELECT dbs.datname, roles.rolname
postgres-# FROM pg_catalog.pg_database dbs, pg_catalog.pg_roles roles
postgres-# WHERE dbs.datdba = roles.oid;
  datname  |  rolname
-----------+-----------
 template0 | postgres
 template1 | postgres
 postgres  | postgres
 sell      | test_user
(4 rows)


postgres=#

sell이라는 데이터베이스 소유자가 test_user로 변경된 것을 볼 수 있습니다.

데이터베이스 변경 명령에 대한 자세한 내용은 공식 문서를 참조하세요.

Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website

관련 문장 - PostgreSQL Database