USER 확인
pg_catalog.pg_user
postgres=# SELECT * FROM pg_catalog.pg_user;
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig
-----------+----------+-------------+----------+---------+--------------+----------+----------+-----------
postgres | 10 | t | t | t | t | ******** | |
cccc | 16384 | f | t | f | f | ******** | |
ddd | 17645 | f | t | f | f | ******** | |
aaa | 29446 | f | t | f | f | ******** | |
bbb | 17632 | f | t | f | f | ******** | |
(5개 행)
select current_user;
postgres=# select current_user;
current_user
--------------
postgres
(1개 행)
conninfo;
postgres-# \conninfo
접속정보: 데이터베이스="postgres", 사용자="postgres", 소켓="/var/run/postgresql", 포트="5432"
\du
postgres-# \du
롤 목록
롤 이름 | 속성 | 소속 그룹:
-----------+------------------------------------------------+------------
postgres | 슈퍼유저, 롤 만들기, DB 만들기, 복제, RLS 통과 | {}
aaa | 슈퍼유저 | {}
bbb | 슈퍼유저 | {}
ccc | 슈퍼유저 | {}
ddd | 슈퍼유저 | {}
eee | 슈퍼유저 | {}
USER 생성
postgres=# create user sua with password 'sua';
CREATE ROLE
postgres=# create database suaDB;
CREATE DATABASE
postgres=# grant all privileges on database suaDB to sua;
GRANT
user switch
conn sua/sua
conn -u sua -u sua
안됨!
터미널 나갔다가 user 로 접속해야함
schema생성
suadb=> create schema sua_schema;
CREATE SCHEMA
suadb=> grant all privileges on schema sua_schema to sua;
GRANT
suadb=> \dn
스키마 목록
이름 | 소유주
------------+-------------------
public | pg_database_owner
sua_schema | sua
(2개 행)
user의 default schema 를 sua_schema로 변경하기
-- public 스키마 권한을 안줘서 table 생성 안됨
suadb=> create table t1 ( c1 int, c2 varchar(10));
오류: public 스키마(schema) 접근 권한 없음
줄 1: create table t1 ( c1 int, c2 varchar(10));
-- sua_schema를 기본 경로로 변경
바꾸기전
suadb=> show search_path;
search_path
-----------------
"$user", public
(1개 행)
바꾸는 명령어
suadb=> alter role sua set search_path to sua_schema, public;
ALTER ROLE
재접속 후 변경됨을 확인
suadb=> show search_path;
search_path
--------------------
sua_schema, public
(1개 행)
테이블 생성 완료
suadb=> create table t1 ( c1 int, c2 varchar(10));
CREATE TABLE
번외로 tablespace 사용량 및 tablespace 별 database 보려고 한다
postgres=# sELECT datname, pg_tablespace_location(dattablespace) AS tablespace_location
postgres-# FROM pg_database;
datname | tablespace_location
-----------+---------------------
postgres |
pgsql_119 |
template1 |
template0 |
pms5123 |
edk2613 |
suadb |
(7개 행)
postgres=# ^C
postgres=# select * from pg_tablespace;
oid | spcname | spcowner | spcacl | spcoptions
------+------------+----------+--------+------------
1663 | pg_default | 10 | |
1664 | pg_global | 10 | |
(2개 행)
postgres=# select pg_tablespace_size('pg_default');
pg_tablespace_size
--------------------
17358942323
(1개 행)
'DBMS' 카테고리의 다른 글
[SIMD 프로그래밍-0] Column base DB와 Row base DB차이는 ? (0) | 2024.10.28 |
---|---|
[PostgreSQL] pg_stat_statement 보는 법 (ft. analyze table) (0) | 2024.07.16 |
[PostgreSQL] pg_stat_statements 설정하기 (0) | 2024.07.15 |
[AWS] AWSOME DAY - Computing 종류 (Ec2 ,Lambda ,ECS비교) (0) | 2024.07.12 |
[Oracle] - sqlplus prompt setting 하기 (1) | 2024.07.03 |