개체가 생성되면 소유자가 할당됩니다. 소유자는 일반적으로 생성 문을 실행한 역할입니다. 대부분의 객체 종류의 초기 상태는 소유자(또는 수퍼유저)만이 객체에 대해 무엇이든 할 수 있다는 것입니다. 다른 역할이 이를 사용하도록 허용하려면,젠 토토허용되어야 합니다.
젠 토토에는 다양한 종류가 있습니다.선택, 삽입, 업데이트, 삭제, 잘라내기, 참조, 트리거, 만들기, 연결, 임시, 실행, 사용, SET, 시스템 변경및유지. 특정 객체에 적용할 수 있는 젠 토토은 객체의 유형(테이블, 함수 등)에 따라 달라집니다. 이러한 젠 토토의 의미에 대한 자세한 내용은 아래에 나와 있습니다. 다음 섹션과 장에서는 이러한 젠 토토이 사용되는 방법도 보여줍니다.
객체를 수정하거나 파괴할 수 있는 권리는 객체의 소유자에게 내재되어 있으며 그 자체로는 부여되거나 취소될 수 없습니다. (그러나 모든 젠 토토과 마찬가지로 해당 젠 토토은 소유 역할의 구성원에게 상속될 수 있습니다. 참조PostgreSQL : 문서 : 17 : 21.3. 토토 베이 멤버십.)
객체는 다음을 사용하여 새 소유자에게 할당될 수 있습니다.변경객체에 적합한 종류의 명령, 예를 들어
테이블 변경테이블_이름소유자:new_owner;
슈퍼유저는 항상 이 작업을 수행할 수 있습니다. 일반 역할은 객체의 현재 소유자(또는 소유 역할의 젠 토토을 상속)이고 다음을 수행할 수 있는 경우에만 이를 수행할 수 있습니다.역할 설정새로운 소유 역할로.
젠 토토을 할당하려면,그랜트명령이 사용됩니다. 예를 들어, 만약조기존 역할이며계정기존 테이블이므로 다음을 통해 테이블을 업데이트할 수 있는 젠 토토을 부여할 수 있습니다.
Joe에게 계정 업데이트 부여;
작성전체특정 젠 토토 대신 개체 유형과 관련된 모든 젠 토토을 부여합니다.
특집“역할”이름공개시스템의 모든 역할에 젠 토토을 부여하는 데 사용할 수 있습니다. 또한,“그룹”데이터베이스 사용자가 많을 때 젠 토토을 관리하는 데 도움이 되도록 역할을 설정할 수 있습니다. 자세한 내용은 참조PostgreSQL : 문서 : 17 : 21 장. 데이터베이스 범퍼카 토토.
이전에 부여된 특권을 취소하려면 적절한 이름을 사용하십시오.취소명령:
공개 계정의 모든 계정을 취소합니다.
일반적으로 개체의 소유자(또는 수퍼유저)만이 개체에 대한 젠 토토을 부여하거나 취소할 수 있습니다. 다만, 젠 토토 부여는 가능합니다.“부여 옵션 포함”, 수신자에게 이를 다른 사람에게 차례로 부여할 수 있는 젠 토토을 부여합니다. 이후에 부여 옵션이 취소되면 해당 수신자로부터 (직접 또는 일련의 부여를 통해) 젠 토토을 받은 모든 사람은 젠 토토을 잃게 됩니다. 자세한 내용은 다음을 참조하세요.그랜트그리고취소참조 페이지.
객체의 소유자는 예를 들어 자신과 다른 사람을 위해 테이블을 읽기 전용으로 만드는 등 자신의 일반 젠 토토을 취소하도록 선택할 수 있습니다. 그러나 소유자는 항상 모든 부여 옵션을 보유하는 것으로 간주되므로 언제든지 자신의 젠 토토을 다시 부여할 수 있습니다.
사용 가능한 젠 토토은 다음과 같습니다:
선택 #허용선택테이블, 뷰, 구체화된 뷰 또는 기타 테이블과 유사한 객체의 모든 열 또는 특정 열에서. 또한 다음을 사용할 수 있습니다.복사 대상. 이 젠 토토은의 기존 열 값을 참조하는 데에도 필요합니다.업데이트, 삭제또는병합. 시퀀스의 경우 이 젠 토토을 사용하면곡선함수. 대형 개체의 경우 이 젠 토토을 사용하면 개체를 읽을 수 있습니다.
삽입 #허용삽입새 행을 테이블, 뷰 등에 추가합니다. 특정 열에 부여할 수 있으며, 이 경우 해당 열만 해당 열에 할당될 수 있습니다.삽입명령(따라서 다른 열은 기본값을 받습니다). 또한 다음을 사용할 수 있습니다.복사본:.
업데이트 #허용업데이트테이블, 뷰 등의 모든 열 또는 특정 열(실제로는 중요하지 않음)업데이트명령에는 다음이 필요합니다선택젠 토토도 있습니다. 업데이트할 행을 결정하거나 열의 새 값을 계산하려면 테이블 열을 참조해야 하기 때문입니다.)업데이트를 위해 ... 선택그리고선택 ... 공유용또한 다음 열 외에도 하나 이상의 열에 대해 이 젠 토토이 필요합니다.선택특권. 시퀀스의 경우 이 젠 토토을 사용하면다음값그리고setval함수. 대형 객체의 경우 이 젠 토토을 사용하면 객체를 쓰거나 자를 수 있습니다.
삭제 #허용삭제테이블, 뷰 등의 행(실제로는 중요하지 않음)삭제명령에는 다음이 필요합니다선택젠 토토도 있습니다. 삭제할 행을 결정하려면 테이블 열을 참조해야 하기 때문입니다.)
잘라내기 #허용잘라내기탁자 위에.
참조 #테이블 또는 테이블의 특정 열을 참조하는 외래 키 제약 조건 생성을 허용합니다.
트리거 #테이블, 뷰 등에 대한 트리거 생성을 허용합니다.
생성 #데이터베이스의 경우 새 스키마와 게시가 데이터베이스 내에 생성되도록 허용하고 신뢰할 수 있는 확장 프로그램이 데이터베이스 내에 설치되도록 허용합니다.
스키마의 경우 스키마 내에서 새 개체가 생성되도록 허용합니다. 기존 개체의 이름을 바꾸려면 해당 개체를 소유해야 합니다.그리고포함된 스키마에 대해 이 젠 토토을 갖습니다.
테이블스페이스의 경우, 테이블스페이스 내에 테이블, 인덱스 및 임시 파일이 생성되도록 허용하고, 테이블스페이스를 기본 테이블스페이스로 갖는 데이터베이스가 생성되도록 허용합니다.
이 젠 토토을 취소해도 기존 개체의 존재나 위치는 변경되지 않습니다.
연결 #피부여자가 데이터베이스에 연결하도록 허용합니다. 이 젠 토토은 연결 시작 시 확인됩니다(다음에 의해 부과된 제한 사항 확인에 추가로).pg_hba.conf).
임시 #데이터베이스를 사용하는 동안 임시 테이블이 생성되도록 허용합니다.
실행 #함수 위에 구현된 모든 연산자의 사용을 포함하여 함수 또는 프로시저 호출을 허용합니다. 함수와 프로시저에 적용할 수 있는 유일한 젠 토토 유형입니다.
사용 #절차적 언어의 경우 해당 언어의 함수 생성을 위한 언어 사용을 허용합니다. 이는 절차적 언어에 적용할 수 있는 유일한 젠 토토 유형입니다.
스키마의 경우 스키마에 포함된 개체에 대한 접근을 허용합니다(개체 자체의 젠 토토 요구 사항도 충족한다고 가정). 본질적으로 이를 통해 수혜자는 다음을 수행할 수 있습니다.“찾아보세요”스키마 내의 개체. 이 젠 토토이 없어도 시스템 카탈로그를 쿼리하는 등의 방법으로 개체 이름을 볼 수 있습니다. 또한 이 젠 토토을 취소한 후 기존 세션에 이전에 이 조회를 수행한 문이 있을 수 있으므로 이는 객체 액세스를 방지하는 완전히 안전한 방법이 아닙니다.
시퀀스의 경우 다음을 사용할 수 있습니다.곡선그리고다음값함수.
유형 및 도메인의 경우 테이블, 함수 및 기타 스키마 개체 생성 시 유형 또는 도메인 사용을 허용합니다. (이 젠 토토이 모든 것을 제어하는 것은 아닙니다.)“사용법”예: 쿼리에 나타나는 유형의 값. 유형에 의존하는 객체가 생성되는 것을 방지할 뿐입니다. 이 젠 토토의 주요 목적은 어떤 사용자가 유형에 대한 종속성을 생성할 수 있는지 제어하는 것입니다. 이를 통해 소유자가 나중에 유형을 변경하는 것을 방지할 수 있습니다.)
외부 데이터 래퍼의 경우 외부 데이터 래퍼를 사용하여 새 서버를 생성할 수 있습니다.
외부 서버의 경우 서버를 사용하여 외부 테이블을 생성할 수 있습니다. 또한 수혜자는 해당 서버와 관련된 자체 사용자 매핑을 생성, 변경 또는 삭제할 수도 있습니다.
SET #서버 구성 매개변수가 현재 세션 내에서 새 값으로 설정되도록 허용합니다. (이 젠 토토은 모든 매개변수에 부여될 수 있지만 일반적으로 설정하려면 슈퍼유저 젠 토토이 필요한 매개변수를 제외하고는 의미가 없습니다.)
시스템 변경 #다음을 사용하여 서버 구성 매개변수를 새 값으로 구성할 수 있습니다.시스템 변경명령.
유지 #허용진공, 분석, 클러스터, 구체화된 보기 새로고침, REINDEX, 락 테이블및 데이터베이스 객체 통계 조작 함수(참조표 9.105) 관계에 대해.
다른 명령에 필요한 젠 토토은 해당 명령의 참조 페이지에 나열되어 있습니다.
PostgreSQL은 일부 유형의 객체에 대한 젠 토토을 부여합니다.공개기본적으로 개체가 생성될 때. 젠 토토이 부여되지 않습니다.공개기본적으로 테이블, 테이블 열, 시퀀스, 외부 데이터 래퍼, 외부 서버, 대형 개체, 스키마, 테이블 공간 또는 구성 매개변수에 적용됩니다. 다른 유형의 객체에 대해서는 기본 젠 토토이 부여됩니다.공개다음과 같습니다:연결그리고임시데이터베이스에 대한 (임시 테이블 생성) 젠 토토;실행함수 및 프로시저에 대한 젠 토토; 그리고사용언어 및 데이터 유형(도메인 포함)에 대한 젠 토토입니다. 물론 객체 소유자는 다음을 수행할 수 있습니다.취소기본 젠 토토과 명시적으로 부여된 젠 토토 모두. (최대한의 보안을 위해 다음을 발행하십시오.취소객체를 생성하는 동일한 트랜잭션에서; 그러면 다른 사용자가 객체를 사용할 수 있는 창이 없습니다.) 또한 이러한 기본 젠 토토 설정은기본 젠 토토 변경명령.
표 5.1다음에서 이러한 젠 토토 유형에 사용되는 한 글자 약어를 표시합니다.ACL값. 의 출력에 다음 문자가 표시됩니다.psql아래에 나열된 명령 또는 다음을 볼 때ACL시스템 카탈로그 열.
표 5.1. ACL젠 토토 약어
| 특권 | 약어 | 적용 가능한 개체 유형 |
|---|---|---|
선택 |
r (“읽기”) |
대형 개체, 순서, 표(및 테이블과 같은 객체), 테이블 열 |
삽입 |
a (“추가”) |
표, 테이블 열 |
업데이트 |
w (“쓰기”) |
대형 개체, 순서, 표, 테이블 열 |
삭제 |
d |
표 |
잘라내기 |
D |
표 |
참조 |
x |
표, 테이블 열 |
트리거 |
t |
표 |
생성 |
C |
데이터베이스, 스키마, 테이블스페이스 |
연결 |
c |
데이터베이스 |
임시 |
T |
데이터베이스 |
실행 |
X |
기능, 절차 |
사용 |
U |
DOMAIN, 외부 데이터 래퍼, 외국 서버, 언어, 스키마, 순서, TYPE |
SET |
s |
매개변수 |
시스템 변경 |
A |
매개변수 |
유지 |
m |
표 |
표 5.2위에 표시된 약어를 사용하여 각 유형의 SQL 개체에 사용할 수 있는 젠 토토을 요약합니다. 또한 다음을 보여줍니다.psql각 개체 유형에 대한 젠 토토 설정을 검사하는 데 사용할 수 있는 명령입니다.
표 5.2. 액세스 젠 토토 요약
| 객체 유형 | 모든 젠 토토 | 기본값공개젠 토토 |
psql명령 |
|---|---|---|---|
데이터베이스 |
CTc |
Tc |
\l |
DOMAIN |
U |
U |
\dD+ |
기능또는절차 |
X |
X |
\df+ |
외부 데이터 래퍼 |
U |
없음 | \이슬+ |
외국 서버 |
U |
없음 | \des+ |
언어 |
U |
U |
\dL+ |
대형 개체 |
rw |
없음 | \dl+ |
매개변수 |
sA |
없음 | \dconfig+ |
스키마 |
UC |
없음 | \dn+ |
순서 |
rwU |
없음 | \dp |
표(그리고 테이블 같은 객체) |
arwdDxtm |
없음 | \dp |
| 테이블 열 | arwx |
없음 | \dp |
테이블스페이스 |
C |
없음 | \db+ |
TYPE |
U |
U |
\dT+ |
특정 개체에 부여된 젠 토토은 다음 목록으로 표시됩니다.아클리템각 항목은 다음 형식을 갖습니다.
수혜자=젠 토토-약어[*].../허가자
각각아클리템특정 부여자가 부여한 한 피부여자의 모든 젠 토토을 나열합니다. 특정 젠 토토은 다음의 한 글자 약어로 표시됩니다.표 5.1, 와*젠 토토이 부여 옵션으로 부여된 경우 추가됩니다. 예를 들어,calvin=r*w/홉스역할을 지정합니다캘빈젠 토토이 있습니다선택 (r) 부여 옵션 포함(*) 및 부여할 수 없는 젠 토토업데이트 (w), 둘 다 역할에 의해 부여됨홉스. 만일캘빈또한 다른 부여자가 부여한 동일한 객체에 대한 일부 젠 토토이 있으며, 이는 별도의 젠 토토으로 나타납니다.아클리템항목. 의 빈 피부여자 필드아클리템다음을 의미함공개.
예를 들어, 해당 사용자를 가정해 보겠습니다.미리암테이블 생성마이테이블그리고 다음을 수행합니다:
mytable에 대한 선택을 공개로 부여합니다. GRANT SELECT, UPDATE, INSERT ON mytable TO 관리자; GRANT SELECT (col1), UPDATE (col1) ON mytable TO miriam_rw;
그럼psql's\dp명령은 다음을 표시합니다:
= \dp mytable
접근 젠 토토
스키마 | 이름 | 유형 | 접근 젠 토토 | 열 젠 토토 | 정책
---------+---------+-------+------------+------------+----------
공개 | 마이테이블 | 테이블 | 미리암=arwdDxtm/미리암+| col1: +|
| | | =r/미리암 +| miriam_rw=rw/미리암 |
| | | 관리자=arw/미리암 | |
(1행)
만약에“접근 젠 토토”해당 개체에 대한 열이 비어 있으면 해당 개체에 기본 젠 토토이 있음을 의미합니다(즉, 관련 시스템 카탈로그의 해당 젠 토토 항목이 null임). 기본 젠 토토에는 항상 소유자에 대한 모든 젠 토토이 포함되며 다음에 대한 일부 젠 토토이 포함될 수 있습니다.공개객체 유형에 따라 위에 설명된 대로. 첫 번째그랜트또는취소객체에 대해 기본 젠 토토을 인스턴스화합니다(예: 생성)miriam=arwdDxt/miriam) 그런 다음 지정된 요청에 따라 수정합니다. 마찬가지로 항목은 다음과 같습니다.“열 젠 토토”기본이 아닌 젠 토토이 있는 열에만 해당됩니다. (참고: 이 목적을 위해,“기본 젠 토토”항상 개체 유형에 대해 기본 제공되는 기본 젠 토토을 의미합니다. 젠 토토이 다음의 영향을 받은 객체입니다.기본 젠 토토 변경명령은 항상 다음의 효과를 포함하는 명시적인 젠 토토 항목과 함께 표시됩니다.변경.)
소유자의 암시적 부여 옵션은 접근 젠 토토 표시에 표시되지 않습니다. 갑*부여 옵션이 누군가에게 명시적으로 부여된 경우에만 나타납니다.
그“접근 젠 토토”열 표시(없음)개체의 젠 토토 항목이 null이 아니지만 비어 있는 경우. 이는 객체 소유자에게도 젠 토토이 전혀 부여되지 않음을 의미합니다. 이는 드문 상황입니다. (이 경우 소유자는 여전히 암시적 부여 옵션을 갖고 있으므로 자신의 젠 토토을 다시 부여할 수 있지만 현재는 젠 토토이 없습니다.)
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.