728x90
반응형
PostgreSQL 계정 관리에 대한 상세한 블로그 포스트를 작성해드리겠습니다.
PostgreSQL 계정 관리 완벽 가이드
목차
- 사용자 계정 생성
- 권한 관리
- 역할(Role) 관리
- 패스워드 정책
- 계정 관리 모범 사례
반응형
1. 사용자 계정 생성
PostgreSQL에서는 새로운 사용자를 생성하기 위해 CREATE USER
또는 CREATE ROLE
명령을 사용합니다. 두 명령의 주요 차이점은 CREATE USER
는 기본적으로 LOGIN 권한이 있고, CREATE ROLE
은 LOGIN 권한이 없다는 점입니다.
-- 기본적인 사용자 생성
CREATE USER john WITH PASSWORD 'secure_password123';
-- 추가 옵션을 포함한 사용자 생성
CREATE USER jane
WITH PASSWORD 'secure_password456'
CREATEDB
VALID UNTIL '2025-12-31';
2. 권한 관리
데이터베이스와 테이블에 대한 권한을 관리하는 것은 보안에 매우 중요합니다.
-- 데이터베이스 권한 부여
GRANT ALL PRIVILEGES ON DATABASE mydb TO john;
-- 특정 테이블에 대한 권한 부여
GRANT SELECT, INSERT, UPDATE ON table_name TO jane;
-- 스키마 권한 부여
GRANT USAGE ON SCHEMA public TO john;
-- 권한 취소
REVOKE ALL PRIVILEGES ON DATABASE mydb FROM john;
3. 역할(Role) 관리
역할을 사용하면 권한을 그룹화하여 효율적으로 관리할 수 있습니다.
-- 역할 생성
CREATE ROLE readonly;
-- 역할에 권한 부여
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
-- 사용자에게 역할 할당
GRANT readonly TO john;
-- 역할 확인
SELECT rolname FROM pg_roles;
-- 사용자의 역할 확인
SELECT r.rolname
FROM pg_roles r
JOIN pg_auth_members m ON m.roleid = r.oid
JOIN pg_roles u ON m.member = u.oid
WHERE u.rolname = 'john';
728x90
4. 패스워드 정책
보안을 강화하기 위한 패스워드 관리 방법입니다.
-- 패스워드 변경
ALTER USER john WITH PASSWORD 'new_secure_password';
-- 패스워드 만료 설정
ALTER USER jane VALID UNTIL '2025-12-31';
-- 패스워드 없이 접속 불가능하게 설정
ALTER USER john WITH PASSWORD NULL;
5. 계정 관리 모범 사례
5.1 보안 관련 권장사항
- 강력한 패스워드 정책 수립
- 최소 12자 이상
- 대소문자, 숫자, 특수문자 포함
- 정기적인 패스워드 변경
- 최소 권한 원칙 적용
- 필요한 최소한의 권한만 부여
- 정기적인 권한 검토 및 불필요한 권한 제거
5.2 운영 관련 권장사항
-- 불필요한 계정 잠금
ALTER USER unused_user NOLOGIN;
-- 계정 활성화 상태 확인
SELECT usename, valuntil, useconfig
FROM pg_user
JOIN pg_shadow ON usename = pg_shadow.shadname;
-- 접속 제한 설정
ALTER USER restricted_user CONNECTION LIMIT 5;
6. 유용한 관리 쿼리
-- 모든 사용자 조회
SELECT usename, useconfig, valuntil
FROM pg_user;
-- 특정 테이블에 대한 권한 조회
SELECT grantee, privilege_type
FROM information_schema.role_table_grants
WHERE table_name = 'your_table';
-- 잠긴 계정 조회
SELECT usename, valuntil
FROM pg_user
WHERE valuntil < CURRENT_TIMESTAMP;
마치며
PostgreSQL의 계정 관리는 데이터베이스 보안의 핵심입니다. 위에서 설명한 내용들을 바탕으로 적절한 보안 정책을 수립하고 구현하시기 바랍니다. 특히 운영 환경에서는 정기적인 계정 검토와 권한 관리가 매우 중요합니다.
이 가이드가 PostgreSQL 계정 관리에 도움이 되었기를 바랍니다. 추가적인 보안 설정이나 특정 환경에 따른 구성은 공식 PostgreSQL 문서를 참조하시기 바랍니다.
#PostgreSQL
#데이터베이스보안
#DB계정관리
#PostgreSQLRole
#데이터베이스관리
#PostgreSQLTutorial
#PostgreSQL권한
#DatabaseSecurity
#PostgreSQLAdmin
#데이터베이스운영
728x90
반응형
'Programming > Database' 카테고리의 다른 글
howto switch from mariadb to mysql in ubuntu 12.04 (0) | 2014.12.18 |
---|---|
pgsql sequence 초기화 (0) | 2014.07.07 |
Windows에 설치된 Mysql 자료를 Linux로 옮기기 (0) | 2013.03.21 |