English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
데이터베이스 객체를 생성할 때마다 소유자가 할당됩니다. 소유자는 대개 create 문을 실행한 사람입니다.
대부분의 객체 유형은 초기 상태에서는 소유자(또는 관리자)만 객체를 수정하거나 제거할 수 있습니다. 다른 역할이나 사용자가 사용할 수 있도록 권한을 설정해야 합니다.
PostgreSQL에서 권한은 다음과 같은 몇 가지로 나뉩니다:
SELECT
INSERT
UPDATE
DELETE
TRUNCATE
REFERENCES
TRIGGER
CREATE
CONNECT
TEMPORARY
EXECUTE
USAGE
대상의 유형(테이블, 함수 등)에 따라 해당 권한을 대상에 적용합니다.
사용자에 대한 권한을 부여하려면 GRANT 명령어를 사용할 수 있습니다.
GRANT 명령어의 기본 문법은 다음과 같습니다:
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }
privilege − 값으로는 SELECT, INSERT, UPDATE, DELETE, RULE, ALL이 될 수 있습니다.
object − 접근 권한을 부여할 대상의 이름입니다. 가능한 대상은 table, view, sequence입니다.
PUBLIC − 모든 사용자를 의미합니다.
GROUP group − 사용자 그룹에 권한을 부여합니다.
username − 권한을 부여할 사용자 이름. PUBLIC은 모든 사용자를 대표하는 단축 형식입니다。
또한, REVOKE 명령어를 사용하여 권한을 취소할 수 있습니다. REVOKE 문법:
REVOKE privilege [, ...] ON object [, ...] FROM { PUBLIC | GROUP groupname | username }
권한을 이해하기 위해 사용자를 생성합니다:
w3codeboxdb=# CREATE USER w3codebox WITH PASSWORD 'password'; CREATE ROLE
정보 CREATE ROLE은 사용자 "w3codebox"를 취소합니다。
COMPANY 테이블 생성(COMPANY SQL 파일 다운로드 ),데이터 내용은 다음과 같습니다:
w3codeboxdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
현재 사용자 "w3codebox"에게 권한을 부여합니다:
w3codeboxdb=# GRANT ALL ON COMPANY TO w3codebox; GRANT
정보 GRANT은 모든 권한이 "w3codebox"를 취소합니다。
아래에서 사용자 "w3codebox"의 권한:
w3codeboxdb=# REVOKE ALL ON COMPANY FROM w3codebox; REVOKE
정보 REVOKE는 사용자의 권한이 취소되었다는 의미입니다。
사용자를 삭제할 수도 있습니다:
w3codeboxdb=# DROP USER w3codebox; DROP ROLE
정보 DROP ROLE은 사용자 "w3codebox"이(가) 데이터베이스에서 제거되었습니다。