Postgresql 관리자 로그인 설정
2023. 7. 9. 23:49ㆍDB/postgresql
이 글을 쓰는 시점에서 postgresql 최신 버전 패키지는 버전이 15 이다.
설치한 패키지는 다음과 같다.
~$ dpkg -l | grep postgres
ii postgresql 15+250.pgdg120+1 all object-relational SQL database (supported version)
ii postgresql-15 15.3-1.pgdg120+1 amd64 The World Most Advanced Open Source Relational Database
ii postgresql-client-15 15.3-1.pgdg120+1 amd64 front-end programs for PostgreSQL 15
ii postgresql-client-common 250.pgdg120+1 all manager for multiple PostgreSQL client versions
ii postgresql-common 250.pgdg120+1 all PostgreSQL database-cluster manager
최초 설치 후 커맨드라인 클라이언트인 psql 에서 postgres 계정으로 로그인을 시도하면 peer 인증 실패가 발생한다.
$ psql -U all --password
암호:
psql: 오류: "/var/run/postgresql/.s.PGSQL.5432" 소켓으로 서버 접속 할 수 없음: 치명적오류: 사용자 "all"의 peer 인증을 실패했습니다.
$ psql -U postgres
psql: 오류: "/var/run/postgresql/.s.PGSQL.5432" 소켓으로 서버 접속 할 수 없음: 치명적오류: 사용자 "postgres"의 peer 인증을 실패했습니다.
$ psql -U postgres --password
암호:
psql: 오류: "/var/run/postgresql/.s.PGSQL.5432" 소켓으로 서버 접속 할 수 없음: 치명적오류: 사용자 "postgres"의 peer 인증을 실패했습니다.
/etc/postgresql/15/main/pg_hba.conf 에서 peer 로 되어 있는 부분을 trust 로 변경해야 한다. (로컬 사용 기준)
변경 전)
.
.
.
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
변경 내역)
# Database administrative login by Unix domain socket
local all postgres trust
^^^^^ (여기)
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
변경 후에는 postgresql 서비스를 재시작해준다.
sudo service postgresql restart
postgres 계정으로 패스워드 없이 로그인될 수 있는 것을 알 수 있다.
/etc/postgresql/15/main$ psql -U postgres
psql (15.3 (Debian 15.3-1.pgdg120+1))
도움말을 보려면 "help"를 입력하십시오.
postgres=#
psql 은 postgresql 의 관리자 콘솔이다. postgresql 설치 시에 기본적으로 생성되는 postgres 계정으로 로그인 한 후에는 내장명령인
\?
\h
으로 각각 사용가능한 도움말을 볼 수 있다.
postgres=# \?
-----------------------------------------------------------------------
(결과)
일반
\copyright PostgreSQL 사용법 및 저작권 정보 표시
\crosstabview [칼럼들] 쿼리를 실행하고, 피봇 테이블 형태로 자료를 보여줌
\errverbose 최대 자세히 보기 상태에서 최근 오류를 다 보여줌
\g [(OPTIONS)] [FILE] 쿼리 실행 (결과는 지정한 파일로, 또는 |파이프로);
\g 명령에서 인자가 없으면 세미콜론과 같음
\gdesc 쿼리를 실행하지 않고 그 결과 칼럼과 자료형을 출력
\gexec 쿼리를 실행하고, 그 결과를 각각 실행 함
\gset [PREFIX] 쿼리 실행 뒤 그 결과를 psql 변수로 저장
\gx [(OPTIONS)] [FILE] \g 명령과 같으나, 출력을 확장 모드로 강제함
\q psql 종료
\watch [SEC] 매 초마다 쿼리 실행
도움말
\? [commands] psql 역슬래시 명령어 설명
\? options psql 명령행 옵션 도움말 보기
\? variables psql 환경 설정 변수들에 설명 보기
\h [NAME] SQL 명령 구문 도움말, 모든 명령을 표시하려면 * 입력
쿼리 버퍼
\e [FILE] [LINE] 외부 편집기로 쿼리 버퍼(또는 파일) 편집
\ef [FUNCNAME [LINE]] 외부 편집기로 해당 함수 내용 편집
\ev [VIEWNAME [LINE]] 외부 편집기로 해당 뷰 정의 편집
\p 쿼리 버퍼의 내용 표시
\r 쿼리 버퍼 초기화(모두 지움)
\s [FILE] 기록 표시 또는 파일에 저장
\w FILE 쿼리 버퍼를 파일에 기록
입력/출력
\copy ... 클라이언트 호스트에 있는 자료를 SQL COPY 명령 실행
\echo [-n] [STRING] 문자열을 표준 출력에 기록 (-n 줄바꿈 없음)
\i FILE 파일에서 명령 실행
\ir FILE \i 명령과 같으나, 경로가 현재 위치 기준 상대적
\o [FILE] 모든 쿼리 결과를 파일 또는 |파이프로 보냄
\qecho [-n] [STRING] 문자열을 \o 출력 스트림에 기록 (-n 줄바꿈 없음)
\warn [-n] [STRING] 문자열을 stderr에 기록 (-n 줄바꿈 없음)
조건문
\if EXPR 조건문 시작
\elif EXPR else if 구문 시작
\else 조건문의 그 외 조건
\endif 조건문 끝
정보보기
(옵션: S = 시스템 개체 표시, + = 추가 상세 정보)
\d[S+] 테이블, 뷰 및 시퀀스 목록
\da[S] [PATTERN] 집계 함수 목록
\dA[+] [PATTERN] 접근 방법 목록
\dAc[+] [AMPTRN [TYPEPTRN]] 연산자 클래스 목록
\dAf[+] [AMPTRN [TYPEPTRN]] 연산자 부류 목록
\dAo[+] [AMPTRN [OPFPTRN]] 연산자 부류 소속 연산자 목록
\dAp[+] [AMPTRN [OPFPTRN]] 연산자 가족에 포함된 지원 함수 목록
\db[+] [PATTERN] 테이블스페이스 목록
\dc[S+] [PATTERN] 문자셋 변환자 목록
\dconfig[+] [PATTERN] 환경설정 매개변수 목록
\dC[+] [PATTERN] 자료형 변환자 목록
\dd[S] [PATTERN] 다른 곳에서는 볼 수 없는 객체 설명을 보여줌
\dD[S+] [PATTERN] 도메인 목록
\ddp [PATTERN] 기본 접근권한 목록
\dE[S+] [PATTERN] 외부 테이블 목록
\des[+] [PATTERN] 외부 서버 목록
\det[+] [PATTERN] 외부 테이블 목록
\deu[+] [PATTERN] 사용자 매핑 목록
\dew[+] [PATTERN] 외부 데이터 래퍼 목록
\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]
[agg/normal/procedure/trigger/window 단일] 함수 목록
\dF[+] [PATTERN] 텍스트 검색 구성 목록
\dFd[+] [PATTERN] 텍스트 검색 사전 목록
\dFp[+] [PATTERN] 텍스트 검색 파서 목록
\dFt[+] [PATTERN] 텍스트 검색 템플릿 목록
\dg[S+] [PATTERN] 롤 목록
\di[S+] [PATTERN] 인덱스 목록
\dl[+] 큰 개체 목록, \lo_list 명령과 같음
\dL[S+] [PATTERN] 프로시져 언어 목록
\dm[S+] [PATTERN] materialized 뷰 목록
\dn[S+] [PATTERN] 스키마 목록
\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]
연산자 목록
\dO[S+] [PATTERN] collation 목록
\dp [PATTERN] 테이블, 뷰 및 시퀀스 액세스 권한 목록
\dP[itn+] [PATTERN] 파티션 릴레이션 목록 [인덱스/테이블만] [n=nested]
\drds [ROLEPTRN [DBPTRN]] per-database 롤 설정 목록
\dRp[+] [PATTERN] 복제 발행 목록
\dRs[+] [PATTERN] 복제 구독 목록
\ds[S+] [PATTERN] 시퀀스 목록
\dt[S+] [PATTERN] 테이블 목록
\dT[S+] [PATTERN] 데이터 형식 목록
\du[S+] [PATTERN] 롤 목록
\dv[S+] [PATTERN] 뷰 목록
\dx[+] [PATTERN] 확장 모듈 목록
\dX [PATTERN] 확장 통계 정보 목록
\dy[+] [PATTERN] 이벤트 트리거 목록
\l[+] [PATTERN] 데이터베이스 목록
\sf[+] 함수이름 함수 정의 보기
\sv[+] 뷰이름 뷰 정의 보기
\z [PATTERN] \dp와 같음
큰 개체
\lo_export LOBOID FILE 큰 개체를 파일로 저장
\lo_import FILE [COMMENT]
파일에서 큰 개체 가져오기
\lo_list[+] 큰 개체 목록
\lo_unlink LOBOID 큰 개체 삭제
출력 형식
\a 정렬되지 않은 출력 모드와 정렬된 출력 모드 전환
\C [STRING] 테이블 제목 설정 또는 값이 없는 경우 설정 안 함
\f [STRING] unaligned 출력에 대해 필드 구분자 표시 또는 설정
\H HTML 출력 모드 전환(현재 off)
\pset [이름 [값]] 테이블 출력 옵션 설정
(border|columns|csv_fieldsep|expanded|fieldsep|
fieldsep_zero|footer|format|linestyle|null|
numericlocale|pager|pager_min_lines|recordsep|
recordsep_zero|tableattr|title|tuples_only|
unicode_border_linestyle|unicode_column_linestyle|
unicode_header_linestyle)
\t [on|off] 행만 표시(현재 off)
\T [STRING] HTML <table> 태그 속성 설정 또는 비었는 경우 설정 안 함
\x [on|off|auto] 확장된 출력 전환 (현재 off)
연결
\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}
새 데이터베이스에 접속 (현재 "postgres")
\conninfo 현재 데이터베이스 접속 정보 보기
\encoding [ENCODING] 클라이언트 인코딩 표시 또는 설정
\password [USERNAME] 사용자 암호를 안전하게 변경
운영 체제
\cd [DIR] 현재 작업 디렉터리 변경
\getenv PSQLVAR ENVVAR 환경 변수값을 psql 변수값으로
\setenv NAME [VALUE] 환경 변수 지정 및 해제
\timing [on|off] 명령 실행 시간 전환(현재 off)
\! [COMMAND] 셸 명령 실행 또는 대화식 셸 시작
변수
\prompt [TEXT] NAME 사용자에게 내부 변수를 설정하라는 메시지 표시
\set [NAME [VALUE]] 내부 변수 설정 또는 미지정 경우 모든 변수 목록 표시
\unset NAME 내부 변수 설정 해제(삭제)
(END)
postgres=# \h
-----------------------------------------------------------------------
(결과)
사용 가능한 도움말:
ABORT ALTER SYSTEM CREATE FOREIGN DATA WRAPPER CREATE USER MAPPING DROP ROUTINE NOTIFY
ALTER AGGREGATE ALTER TABLE CREATE FOREIGN TABLE CREATE VIEW DROP RULE PREPARE
ALTER COLLATION ALTER TABLESPACE CREATE FUNCTION DEALLOCATE DROP SCHEMA PREPARE TRANSACTION
ALTER CONVERSION ALTER TEXT SEARCH CONFIGURATION CREATE GROUP DECLARE DROP SEQUENCE REASSIGN OWNED
ALTER DATABASE ALTER TEXT SEARCH DICTIONARY CREATE INDEX DELETE DROP SERVER REFRESH MATERIALIZED VIEW
ALTER DEFAULT PRIVILEGES ALTER TEXT SEARCH PARSER CREATE LANGUAGE DISCARD DROP STATISTICS REINDEX
ALTER DOMAIN ALTER TEXT SEARCH TEMPLATE CREATE MATERIALIZED VIEW DO DROP SUBSCRIPTION RELEASE SAVEPOINT
ALTER EVENT TRIGGER ALTER TRIGGER CREATE OPERATOR DROP ACCESS METHOD DROP TABLE RESET
ALTER EXTENSION ALTER TYPE CREATE OPERATOR CLASS DROP AGGREGATE DROP TABLESPACE REVOKE
ALTER FOREIGN DATA WRAPPER ALTER USER CREATE OPERATOR FAMILY DROP CAST DROP TEXT SEARCH CONFIGURATION ROLLBACK
ALTER FOREIGN TABLE ALTER USER MAPPING CREATE POLICY DROP COLLATION DROP TEXT SEARCH DICTIONARY ROLLBACK PREPARED
ALTER FUNCTION ALTER VIEW CREATE PROCEDURE DROP CONVERSION DROP TEXT SEARCH PARSER ROLLBACK TO SAVEPOINT
ALTER GROUP ANALYZE CREATE PUBLICATION DROP DATABASE DROP TEXT SEARCH TEMPLATE SAVEPOINT
ALTER INDEX BEGIN CREATE ROLE DROP DOMAIN DROP TRANSFORM SECURITY LABEL
ALTER LANGUAGE CALL CREATE RULE DROP EVENT TRIGGER DROP TRIGGER SELECT
ALTER LARGE OBJECT CHECKPOINT CREATE SCHEMA DROP EXTENSION DROP TYPE SELECT INTO
ALTER MATERIALIZED VIEW CLOSE CREATE SEQUENCE DROP FOREIGN DATA WRAPPER DROP USER SET
ALTER OPERATOR CLUSTER CREATE SERVER DROP FOREIGN TABLE DROP USER MAPPING SET CONSTRAINTS
ALTER OPERATOR CLASS COMMENT CREATE STATISTICS DROP FUNCTION DROP VIEW SET ROLE
ALTER OPERATOR FAMILY COMMIT CREATE SUBSCRIPTION DROP GROUP END SET SESSION AUTHORIZATION
ALTER POLICY COMMIT PREPARED CREATE TABLE DROP INDEX EXECUTE SET TRANSACTION
ALTER PROCEDURE COPY CREATE TABLE AS DROP LANGUAGE EXPLAIN SHOW
ALTER PUBLICATION CREATE ACCESS METHOD CREATE TABLESPACE DROP MATERIALIZED VIEW FETCH START TRANSACTION
ALTER ROLE CREATE AGGREGATE CREATE TEXT SEARCH CONFIGURATION DROP OPERATOR GRANT TABLE
ALTER ROUTINE CREATE CAST CREATE TEXT SEARCH DICTIONARY DROP OPERATOR CLASS IMPORT FOREIGN SCHEMA TRUNCATE
ALTER RULE CREATE COLLATION CREATE TEXT SEARCH PARSER DROP OPERATOR FAMILY INSERT UNLISTEN
ALTER SCHEMA CREATE CONVERSION CREATE TEXT SEARCH TEMPLATE DROP OWNED LISTEN UPDATE
ALTER SEQUENCE CREATE DATABASE CREATE TRANSFORM DROP POLICY LOAD VACUUM
ALTER SERVER CREATE DOMAIN CREATE TRIGGER DROP PROCEDURE LOCK VALUES
ALTER STATISTICS CREATE EVENT TRIGGER CREATE TYPE DROP PUBLICATION MERGE WITH
ALTER SUBSCRIPTION CREATE EXTENSION CREATE USER DROP ROLE MOVE
'DB > postgresql' 카테고리의 다른 글
Postgresql - SQLite 로부터 가져오기 (0) | 2023.07.23 |
---|---|
Postgresql - 계정 패스워드 변경하기 (0) | 2023.07.12 |
Postgresql - DB 사용자 계정 생성 (0) | 2023.07.10 |