5.8. 젠 토토#

개체가 생성되면 소유자가 할당됩니다. 소유자는 일반적으로 생성 문을 실행한 역할입니다. 대부분의 객체 종류의 초기 상태는 소유자(또는 수퍼유저)만이 객체에 대해 무엇이든 할 수 있다는 것입니다. 다른 역할이 이를 사용하도록 허용하려면,젠 토토허용되어야 합니다.

젠 토토에는 다양한 종류가 있습니다.선택, 삽입, 업데이트, 삭제, 잘라내기, 참조, 트리거, 만들기, 연결, 임시, 실행, 사용, 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이 아니지만 비어 있는 경우. 이는 객체 소유자에게도 젠 토토이 전혀 부여되지 않음을 의미합니다. 이는 드문 상황입니다. (이 경우 소유자는 여전히 암시적 부여 옵션을 갖고 있으므로 자신의 젠 토토을 다시 부여할 수 있지만 현재는 젠 토토이 없습니다.)

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.