Share
Sign In

유저 권한 생성 및 삭제

유저를 생성해보고 권한을 주는 방법을 알아 볼 것이다.
일반적으로 권한의 집합을 모아 역할(role)을 생성한 후에 역할을 유저에게 부여하는 방법으로 유저에게 권한을 부여하게 된다. 또한 표준 SQL에 규정에 따라 대체적으로 쿼리문은 비슷할 수 있다. mysql과 권한, 유저, 역할 설정 개넘은 비슷하니 구체적인 개념은 아래의 링크를 확인하자.
Role, User
이 페이지에서는 개념은 최소화로 하고, 실제적으로 유저를 생성, 역할 설정 및 부여 등의 권한 관리를 해볼 것이다.
역할(Role)
역할 조회
select * from pg_roles;
postgresql은 mysql과 다르게 기본 역할(default role)이 존재한다.
해당 역할은 사전에 생성되어 있고, 이는 데이터 베이스 관리자가 쉽게 DB를 모니터링 할수 있도록 돕는 역할들이다. 역할들은 일반적으로 슈퍼유저로 제한된 다양한 유용한 구성 설정, 통계 및 기타 시스템 정보를 읽을 수 있도록 하는 역할들이다.
특히 pg_signal_backend 역할은 관리자가 신뢰할 수 있지만 수퍼유저가 아닌 역할이 신호를 다른 백엔드로 보낼 수 있도록 하기 위한 것이다. 현재 이 역할을 사용하면 다른 백엔드에서 쿼리를 취소하거나 해당 세션을 종료하기 위한 신호를 보낼 수 있다. 하지만 이 역할이 부여된 사용자는 수퍼유저가 소유한 백엔드에 신호를 보낼 수 없다.
역할 생성
코드 포맷
CREATE ROLE name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid
예시
CREATE ROLE role_admin SUPERUSER CREATEDB CREATEROLE NOINHERIT NOLOGIN REPLICATION CONNECTION LIMIT -1; # 관리자 역할 CREATE ROLE role_advanced_developer NOLOGIN CONNECTION LIMIT 10; CREATE ROLE role_developer NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_manager NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_application NOLOGIN CONNECTION LIMIT 20;
역할에 대한 구체적 명세
역할에 권한 부여
grant USAGE on schema 스키마이름 to role_manager, role_developer, role_advanced_developer, role_admin;
자세한 권한 목록 및 형식
권한 뺃기
revoke role_advanced_developer from seongho_park;
자세한 권한 목록 및 형식
권한(privileges)
특정 유저, 역할 권한 조회
select * from information_schema.table_privileges where grantee = 'role_manager' and table_schema ='schema_name'; select * from information_schema.table_privileges where grantee = 'some_user' and table_schema ='schema_name';
유저(User)
유저 조회
select * from pg_shadow;
유저 생성
CREATE USERname [ [ WITH ]option [ ... ] ] whereoption can be: SYSIDuid | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUPgroupname [, ...] | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'abstime'
예시
CREATE USER seongho_park WITH PASSWORD 'dddssadft' # 패스원드 추가 옵션 VALID UNTIL '2005-01-01'; # 추가로 만료기간 옵션
유저 역할 조회
select * from information_schema.table_privileges where table_schema = '확인할 스키마 이름';
유저를 생성해보고 권한을 주는 방법을 알아 볼 것이다.
일반적으로 권한의 집합을 모아 역할(role)을 생성한 후에 역할을 유저에게 부여하는 방법으로 유저에게 권한을 부여하게 된다. 또한 표준 SQL에 규정에 따라 대체적으로 쿼리문은 비슷할 수 있다. mysql과 권한, 유저, 역할 설정 개넘은 비슷하니 구체적인 개념은 아래의 링크를 확인하자.
Role, User
이 페이지에서는 개념은 최소화로 하고, 실제적으로 유저를 생성, 역할 설정 및 부여 등의 권한 관리를 해볼 것이다.
역할(Role)
역할 조회
select * from pg_roles;
postgresql은 mysql과 다르게 기본 역할(default role)이 존재한다.
해당 역할은 사전에 생성되어 있고, 이는 데이터 베이스 관리자가 쉽게 DB를 모니터링 할수 있도록 돕는 역할들이다. 역할들은 일반적으로 슈퍼유저로 제한된 다양한 유용한 구성 설정, 통계 및 기타 시스템 정보를 읽을 수 있도록 하는 역할들이다.
특히 pg_signal_backend 역할은 관리자가 신뢰할 수 있지만 수퍼유저가 아닌 역할이 신호를 다른 백엔드로 보낼 수 있도록 하기 위한 것이다. 현재 이 역할을 사용하면 다른 백엔드에서 쿼리를 취소하거나 해당 세션을 종료하기 위한 신호를 보낼 수 있다. 하지만 이 역할이 부여된 사용자는 수퍼유저가 소유한 백엔드에 신호를 보낼 수 없다.
역할 생성
코드 포맷
CREATE ROLE name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid
예시
CREATE ROLE role_admin SUPERUSER CREATEDB CREATEROLE NOINHERIT NOLOGIN REPLICATION CONNECTION LIMIT -1; # 관리자 역할 CREATE ROLE role_advanced_developer NOLOGIN CONNECTION LIMIT 10; CREATE ROLE role_developer NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_manager NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_application NOLOGIN CONNECTION LIMIT 20;
역할에 대한 구체적 명세
역할에 권한 부여
grant USAGE on schema 스키마이름 to role_manager, role_developer, role_advanced_developer, role_admin;
자세한 권한 목록 및 형식
권한 뺃기
revoke role_advanced_developer from seongho_park;
자세한 권한 목록 및 형식
권한(privileges)
특정 유저, 역할 권한 조회
select * from information_schema.table_privileges where grantee = 'role_manager' and table_schema ='schema_name'; select * from information_schema.table_privileges where grantee = 'some_user' and table_schema ='schema_name';
유저(User)
유저 조회
select * from pg_shadow;
유저 생성
CREATE USERname [ [ WITH ]option [ ... ] ] whereoption can be: SYSIDuid | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUPgroupname [, ...] | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'abstime'
예시
CREATE USER seongho_park WITH PASSWORD 'dddssadft' # 패스원드 추가 옵션 VALID UNTIL '2005-01-01'; # 추가로 만료기간 옵션
유저 역할 조회
select * from information_schema.table_privileges where table_schema = '확인할 스키마 이름';
유저를 생성해보고 권한을 주는 방법을 알아 볼 것이다.
일반적으로 권한의 집합을 모아 역할(role)을 생성한 후에 역할을 유저에게 부여하는 방법으로 유저에게 권한을 부여하게 된다. 또한 표준 SQL에 규정에 따라 대체적으로 쿼리문은 비슷할 수 있다. mysql과 권한, 유저, 역할 설정 개넘은 비슷하니 구체적인 개념은 아래의 링크를 확인하자.
Role, User
이 페이지에서는 개념은 최소화로 하고, 실제적으로 유저를 생성, 역할 설정 및 부여 등의 권한 관리를 해볼 것이다.
역할(Role)
역할 조회
select * from pg_roles;
postgresql은 mysql과 다르게 기본 역할(default role)이 존재한다.
해당 역할은 사전에 생성되어 있고, 이는 데이터 베이스 관리자가 쉽게 DB를 모니터링 할수 있도록 돕는 역할들이다. 역할들은 일반적으로 슈퍼유저로 제한된 다양한 유용한 구성 설정, 통계 및 기타 시스템 정보를 읽을 수 있도록 하는 역할들이다.
특히 pg_signal_backend 역할은 관리자가 신뢰할 수 있지만 수퍼유저가 아닌 역할이 신호를 다른 백엔드로 보낼 수 있도록 하기 위한 것이다. 현재 이 역할을 사용하면 다른 백엔드에서 쿼리를 취소하거나 해당 세션을 종료하기 위한 신호를 보낼 수 있다. 하지만 이 역할이 부여된 사용자는 수퍼유저가 소유한 백엔드에 신호를 보낼 수 없다.
역할 생성
코드 포맷
CREATE ROLE name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid
예시
CREATE ROLE role_admin SUPERUSER CREATEDB CREATEROLE NOINHERIT NOLOGIN REPLICATION CONNECTION LIMIT -1; # 관리자 역할 CREATE ROLE role_advanced_developer NOLOGIN CONNECTION LIMIT 10; CREATE ROLE role_developer NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_manager NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_application NOLOGIN CONNECTION LIMIT 20;
역할에 대한 구체적 명세
역할에 권한 부여
grant USAGE on schema 스키마이름 to role_manager, role_developer, role_advanced_developer, role_admin;
자세한 권한 목록 및 형식
권한 뺃기
revoke role_advanced_developer from seongho_park;
자세한 권한 목록 및 형식
권한(privileges)
특정 유저, 역할 권한 조회
select * from information_schema.table_privileges where grantee = 'role_manager' and table_schema ='schema_name'; select * from information_schema.table_privileges where grantee = 'some_user' and table_schema ='schema_name';
유저(User)
유저 조회
select * from pg_shadow;
유저 생성
CREATE USERname [ [ WITH ]option [ ... ] ] whereoption can be: SYSIDuid | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUPgroupname [, ...] | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'abstime'
예시
CREATE USER seongho_park WITH PASSWORD 'dddssadft' # 패스원드 추가 옵션 VALID UNTIL '2005-01-01'; # 추가로 만료기간 옵션
유저 역할 조회
select * from information_schema.table_privileges where table_schema = '확인할 스키마 이름';
유저를 생성해보고 권한을 주는 방법을 알아 볼 것이다.
일반적으로 권한의 집합을 모아 역할(role)을 생성한 후에 역할을 유저에게 부여하는 방법으로 유저에게 권한을 부여하게 된다. 또한 표준 SQL에 규정에 따라 대체적으로 쿼리문은 비슷할 수 있다. mysql과 권한, 유저, 역할 설정 개넘은 비슷하니 구체적인 개념은 아래의 링크를 확인하자.
Role, User
이 페이지에서는 개념은 최소화로 하고, 실제적으로 유저를 생성, 역할 설정 및 부여 등의 권한 관리를 해볼 것이다.
역할(Role)
역할 조회
select * from pg_roles;
postgresql은 mysql과 다르게 기본 역할(default role)이 존재한다.
해당 역할은 사전에 생성되어 있고, 이는 데이터 베이스 관리자가 쉽게 DB를 모니터링 할수 있도록 돕는 역할들이다. 역할들은 일반적으로 슈퍼유저로 제한된 다양한 유용한 구성 설정, 통계 및 기타 시스템 정보를 읽을 수 있도록 하는 역할들이다.
특히 pg_signal_backend 역할은 관리자가 신뢰할 수 있지만 수퍼유저가 아닌 역할이 신호를 다른 백엔드로 보낼 수 있도록 하기 위한 것이다. 현재 이 역할을 사용하면 다른 백엔드에서 쿼리를 취소하거나 해당 세션을 종료하기 위한 신호를 보낼 수 있다. 하지만 이 역할이 부여된 사용자는 수퍼유저가 소유한 백엔드에 신호를 보낼 수 없다.
역할 생성
코드 포맷
CREATE ROLE name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid
예시
CREATE ROLE role_admin SUPERUSER CREATEDB CREATEROLE NOINHERIT NOLOGIN REPLICATION CONNECTION LIMIT -1; # 관리자 역할 CREATE ROLE role_advanced_developer NOLOGIN CONNECTION LIMIT 10; CREATE ROLE role_developer NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_manager NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_application NOLOGIN CONNECTION LIMIT 20;
역할에 대한 구체적 명세
역할에 권한 부여
grant USAGE on schema 스키마이름 to role_manager, role_developer, role_advanced_developer, role_admin;
자세한 권한 목록 및 형식
권한 뺃기
revoke role_advanced_developer from seongho_park;
자세한 권한 목록 및 형식
권한(privileges)
특정 유저, 역할 권한 조회
select * from information_schema.table_privileges where grantee = 'role_manager' and table_schema ='schema_name'; select * from information_schema.table_privileges where grantee = 'some_user' and table_schema ='schema_name';
유저(User)
유저 조회
select * from pg_shadow;
유저 생성
CREATE USERname [ [ WITH ]option [ ... ] ] whereoption can be: SYSIDuid | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUPgroupname [, ...] | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'abstime'
예시
CREATE USER seongho_park WITH PASSWORD 'dddssadft' # 패스원드 추가 옵션 VALID UNTIL '2005-01-01'; # 추가로 만료기간 옵션
유저 역할 조회
select * from information_schema.table_privileges where table_schema = '확인할 스키마 이름';
유저를 생성해보고 권한을 주는 방법을 알아 볼 것이다.
일반적으로 권한의 집합을 모아 역할(role)을 생성한 후에 역할을 유저에게 부여하는 방법으로 유저에게 권한을 부여하게 된다. 또한 표준 SQL에 규정에 따라 대체적으로 쿼리문은 비슷할 수 있다. mysql과 권한, 유저, 역할 설정 개넘은 비슷하니 구체적인 개념은 아래의 링크를 확인하자.
Role, User
이 페이지에서는 개념은 최소화로 하고, 실제적으로 유저를 생성, 역할 설정 및 부여 등의 권한 관리를 해볼 것이다.
역할(Role)
역할 조회
select * from pg_roles;
postgresql은 mysql과 다르게 기본 역할(default role)이 존재한다.
해당 역할은 사전에 생성되어 있고, 이는 데이터 베이스 관리자가 쉽게 DB를 모니터링 할수 있도록 돕는 역할들이다. 역할들은 일반적으로 슈퍼유저로 제한된 다양한 유용한 구성 설정, 통계 및 기타 시스템 정보를 읽을 수 있도록 하는 역할들이다.
특히 pg_signal_backend 역할은 관리자가 신뢰할 수 있지만 수퍼유저가 아닌 역할이 신호를 다른 백엔드로 보낼 수 있도록 하기 위한 것이다. 현재 이 역할을 사용하면 다른 백엔드에서 쿼리를 취소하거나 해당 세션을 종료하기 위한 신호를 보낼 수 있다. 하지만 이 역할이 부여된 사용자는 수퍼유저가 소유한 백엔드에 신호를 보낼 수 없다.
역할 생성
코드 포맷
CREATE ROLE name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid
예시
CREATE ROLE role_admin SUPERUSER CREATEDB CREATEROLE NOINHERIT NOLOGIN REPLICATION CONNECTION LIMIT -1; # 관리자 역할 CREATE ROLE role_advanced_developer NOLOGIN CONNECTION LIMIT 10; CREATE ROLE role_developer NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_manager NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_application NOLOGIN CONNECTION LIMIT 20;
역할에 대한 구체적 명세
역할에 권한 부여
grant USAGE on schema 스키마이름 to role_manager, role_developer, role_advanced_developer, role_admin;
자세한 권한 목록 및 형식
권한 뺃기
revoke role_advanced_developer from seongho_park;
자세한 권한 목록 및 형식
권한(privileges)
특정 유저, 역할 권한 조회
select * from information_schema.table_privileges where grantee = 'role_manager' and table_schema ='schema_name'; select * from information_schema.table_privileges where grantee = 'some_user' and table_schema ='schema_name';
유저(User)
유저 조회
select * from pg_shadow;
유저 생성
CREATE USERname [ [ WITH ]option [ ... ] ] whereoption can be: SYSIDuid | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUPgroupname [, ...] | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'abstime'
예시
CREATE USER seongho_park WITH PASSWORD 'dddssadft' # 패스원드 추가 옵션 VALID UNTIL '2005-01-01'; # 추가로 만료기간 옵션
유저 역할 조회
select * from information_schema.table_privileges where table_schema = '확인할 스키마 이름';
유저를 생성해보고 권한을 주는 방법을 알아 볼 것이다.
일반적으로 권한의 집합을 모아 역할(role)을 생성한 후에 역할을 유저에게 부여하는 방법으로 유저에게 권한을 부여하게 된다. 또한 표준 SQL에 규정에 따라 대체적으로 쿼리문은 비슷할 수 있다. mysql과 권한, 유저, 역할 설정 개넘은 비슷하니 구체적인 개념은 아래의 링크를 확인하자.
Role, User
이 페이지에서는 개념은 최소화로 하고, 실제적으로 유저를 생성, 역할 설정 및 부여 등의 권한 관리를 해볼 것이다.
역할(Role)
역할 조회
select * from pg_roles;
postgresql은 mysql과 다르게 기본 역할(default role)이 존재한다.
해당 역할은 사전에 생성되어 있고, 이는 데이터 베이스 관리자가 쉽게 DB를 모니터링 할수 있도록 돕는 역할들이다. 역할들은 일반적으로 슈퍼유저로 제한된 다양한 유용한 구성 설정, 통계 및 기타 시스템 정보를 읽을 수 있도록 하는 역할들이다.
특히 pg_signal_backend 역할은 관리자가 신뢰할 수 있지만 수퍼유저가 아닌 역할이 신호를 다른 백엔드로 보낼 수 있도록 하기 위한 것이다. 현재 이 역할을 사용하면 다른 백엔드에서 쿼리를 취소하거나 해당 세션을 종료하기 위한 신호를 보낼 수 있다. 하지만 이 역할이 부여된 사용자는 수퍼유저가 소유한 백엔드에 신호를 보낼 수 없다.
역할 생성
코드 포맷
CREATE ROLE name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid
예시
CREATE ROLE role_admin SUPERUSER CREATEDB CREATEROLE NOINHERIT NOLOGIN REPLICATION CONNECTION LIMIT -1; # 관리자 역할 CREATE ROLE role_advanced_developer NOLOGIN CONNECTION LIMIT 10; CREATE ROLE role_developer NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_manager NOLOGIN CONNECTION LIMIT 5; CREATE ROLE role_application NOLOGIN CONNECTION LIMIT 20;
역할에 대한 구체적 명세
역할에 권한 부여
grant USAGE on schema 스키마이름 to role_manager, role_developer, role_advanced_developer, role_admin;
자세한 권한 목록 및 형식
권한 뺃기
revoke role_advanced_developer from seongho_park;
자세한 권한 목록 및 형식
권한(privileges)
특정 유저, 역할 권한 조회
select * from information_schema.table_privileges where grantee = 'role_manager' and table_schema ='schema_name'; select * from information_schema.table_privileges where grantee = 'some_user' and table_schema ='schema_name';