그랜트 - 액세스 권한 정의
grant select | 삽입 | 업데이트 | 삭제 | 잘린 | 참조 | 방아쇠 [, ...] | 모든 [권한] on [테이블]table_name
[, ...] | 스키마의 모든 테이블Schema_Name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 select | 삽입 | 업데이트 | 참조 (column_name
[, ...]) [, ...] | 모든 [권한] (column_name
[, ...]) [테이블]table_name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 usage | 선택 | 업데이트 [, ...] | 모든 [권한] on 시퀀스시퀀스 _name
[, ...] | 스키마의 모든 시퀀스Schema_Name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여role_specification
] 그랜트 create | 연결 | 임시 | 온도 [, ...] | 모든 [권한] 데이터베이스database_name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 usage | 모든 [권한] 도메인domain_name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여role_specification
] 그랜트 usage | 모든 [권한] 외국 데이터 포장지fdw_name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 usage | 모든 [권한] 외국 서버에서server_name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 execute | 모든 [권한] on function | 절차 | 루틴ROUNINE_NAME
[[[[Argmode
] [arg_name
]arg_type
[, ...])] [, ...] | 모든 함수 | 절차 | 스키마에서의 루틴Schema_Name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 usage | 모든 [권한] On Languagelang_name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 select | 업데이트 [, ...] | 모든 [권한] 큰 물체에loid
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 create | usage [, ...] | 모든 [권한] 스키마Schema_Name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] grant create | 모든 [권한] 테이블 스페이스에서TableSpace_name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 그랜트 usage | 모든 [권한] on typetype_name
[, ...] 에게토토 꽁 머니 _specification
[, ...] [보조금 옵션 포함] [부여토토 꽁 머니 _specification
] 승인하다role_name
[, ...] to토토 꽁 머니 _specification
[, ...] [관리자 옵션 포함] [부여토토 꽁 머니 _specification
]여기서토토 꽁 머니 _specification
can be :[Group]role_name
| 공공의 | current_role | current_user | Session_USER
thegrant
명령에는 두 가지 기본 변형이 있습니다. 하나는 데이터베이스 개체 (표, 열,보기, 외국 테이블, 시퀀스, 데이터베이스, 외국 데이터 래퍼, 기능, 절차, 절차, 스키마 또는 테이블 스페이스에 권한을 부여하는 두 가지 기본 변형이 있습니다. 이 변형은 여러면에서 비슷하지만 별도로 설명하기에 충분히 다릅니다.
이 변형의grant
명령은 데이터베이스 객체에 하나 이상의 토토 꽁 머니에 특정 권한을 제공합니다. 이 특권은 이미 부여 된 사람에게 추가됩니다.
키워드public
나중에 만들 수있는 것들을 포함하여 모든 토토 꽁 머니에 특권이 부여되어야 함을 나타냅니다.public
항상 모든 역할을 포함하는 암시 적으로 정의 된 그룹으로 생각할 수 있습니다. 특정한 역할은 직접 권한이 부여 된 특권의 합계, 현재의 역할에 부여 된 특권 및에 부여 된 특권을 갖습니다.public
.
if보조금 옵션
지정되어 있으며, 특권을받는 사람은 차례로 다른 사람들에게 그것을 부여 할 수 있습니다. 보조금 옵션이 없으면 수신자는 그렇게 할 수 없습니다. 보조금 옵션을 부여 할 수 없습니다public
.
if부여
지정되어 있으며, 지정된 보조자는 현재 사용자 여야합니다. 이 조항은 현재 SQL 호환성에 대해서만이 형식으로 존재합니다.
소유자는 기본적으로 모든 권한이 있기 때문에 객체의 소유자에게 권한을 부여 할 필요가 없습니다. (그러나 소유자는 안전에 대한 자신의 특권을 취소하기로 선택할 수 있습니다.)
객체를 떨어 뜨리거나 어떤 식 으로든 정의를 변경할 권리는 부여 가능한 특권으로 취급되지 않습니다. 그것은 소유자에게 내재되어 있으며, 부여되거나 취소 될 수 없습니다. (그러나 객체를 소유 한 역할의 멤버십을 부여하거나 취소함으로써 비슷한 효과를 얻을 수 있습니다. 아래 참조) 소유자는 암시 적으로 개체에 대한 모든 보조금 옵션이 있습니다..
가능한 특권은 다음과 같습니다.
select
삽입
업데이트
삭제
Truncate
참조
트리거
Create
Connect
임시
execute
usage
특정 유형의 특권,PostgreSQL : 문서 : 14 : 5.7. 범퍼카 토토.
temp
대체 철자임시
.
모든 권한
객체 유형에 사용할 수있는 모든 권한을 부여하십시오. 그만큼특권
키워드는 선택 사항입니다PostgreSQL, 엄격한 SQL에 의해 요구되지만
the기능
구문은 일반 함수, 집계 함수 및 창 함수에 대해 작동하지만 절차에는 그렇지 않습니다. 사용절차
또는 사용루틴
정확한 유형에 관계없이 함수, 집계 함수, 창 함수 또는 절차를 참조하려면
하나 이상의 스키마 내에서 동일한 유형의 모든 객체에 권한을 부여 할 수있는 옵션도 있습니다. 이 기능은 현재 테이블, 시퀀스, 기능 및 절차에 대해서만 지원됩니다.모든 테이블
view와 외국 테이블에도 영향을 미칩니다.grant
Command.모든 기능
또한 집계 및 창 함수에도 영향을 미치지 만 절차는 아니지만 다시 특정 객체와 마찬가지로그랜트
명령. 사용모든 루틴
절차 포함.
이 변형의grant
명령은 역할의 멤버십을 하나 이상의 다른 역할로 부여합니다. 역할의 회원 자격은 각 회원에게 역할에 부여 된 특권을 전달하기 때문에 중요합니다.
if관리자 옵션
명시되어 있으며, 회원은 차례로 다른 사람과의 역할 멤버십을 부여하고 그 역할의 멤버십도 철회 할 수 있습니다. 관리자 옵션이 없으면 일반 사용자는 그렇게 할 수 없습니다. 역할은 보유하는 것으로 간주되지 않습니다관리자 옵션
그 자체로는 세션 사용자가 역할과 일치하는 데이터베이스 세션에서 멤버십 자체를 부여하거나 취소 할 수 있습니다. 데이터베이스 슈퍼 사용자는 모든 역할에서 모든 역할을 수행하거나 취소 할 수 있습니다. 역할Createrole
Privilege는 슈퍼업자가 아닌 역할의 멤버십을 부여하거나 취소 할 수 있습니다.
if부여
지정되어 있으며, 보조금은 지정된 토토 꽁 머니에 의해 수행 된 것으로 기록됩니다. 데이터베이스 슈퍼 사용자만이 명령을 실행하는 동일한 토토 꽁 머니의 이름을 제외 하고이 옵션을 사용할 수 있습니다.
특권이있는 경우와 달리 역할 멤버십을 부여 할 수 없습니다public
. 또한이 형태의 명령은 노이즈 워드를 허용하지 않습니다그룹
in토토 꽁 머니 _specification
.
theRevoke
명령은 액세스 권한을 취소하는 데 사용됩니다.
이후PostgreSQL8.1, 사용자와 그룹의 개념은 역할이라고 불리는 단일 종류의 엔티티로 통합되었습니다. 따라서 더 이상 키워드를 사용할 필요가 없습니다그룹
수 여자가 사용자인지 그룹인지 확인하려면그룹
명령에 여전히 허용되지만 소음 단어입니다.
사용자가 수행 할 수 있습니다select
, 삽입
등의 특정 열이나 전체 테이블에 대한 특권을 보유하는 경우 열에서. 테이블 레벨에서의 특권을 부여한 다음 한 열에 대한 취소는 원하는 것을 수행하지 않습니다. 테이블 레벨 보조금은 열 수준 작업에 영향을받지 않습니다.
객체의 비 소유자가 시도 할 때grant
객체의 권한은 사용자가 객체에 권한이없는 경우 명령이 완전히 실패합니다. 일부 권한을 사용할 수있는 한 명령은 진행되지만 사용자에게 보조금 옵션이있는 권한 만 부여합니다. 그만큼모든 권한을 부여
양식은 보조금 옵션이 보유되지 않으면 경고 메시지를 발행하는 반면, 다른 양식은 명령에 명시된 권한에 대한 보조금 옵션이 보관되지 않은 경우 경고를 발행합니다. (원칙적 으로이 진술은 객체 소유자에게도 적용되지만 소유자는 항상 모든 보조금 옵션을 보유한 것으로 취급되므로 사례는 결코 발생할 수 없습니다.)
Database SuperUser는 객체 권한 설정에 관계없이 모든 객체에 액세스 할 수 있습니다. 이것은의 권리와 비슷합니다루트
유닉스 시스템에서. 와 마찬가지로루트
슈퍼 사용자가 a를 발행하기로 선택한 경우grant
또는Revoke
명령에 따라 명령은 영향을받는 객체의 소유자가 발행 한 것처럼 수행됩니다. 특히, 그러한 명령을 통해 부여 된 특권은 객체 소유자가 부여한 것으로 보입니다. (역할 멤버십의 경우, 멤버십은 포함 역할 자체에 의해 부여 된 것으로 보입니다.)
grant
andRevoke
영향을받는 대상의 소유자가 아닌 토토 꽁 머니에 의해 수행 될 수 있지만, 대상을 소유하거나 권한을 가진 토토 꽁 머니의 구성원 인 토토 꽁 머니의 구성원입니다.보조금 옵션
개체에서. 이 경우 특권은 실제로 대상을 소유하거나 권한을 보유하는 역할에 의해 부여 된 것으로 기록됩니다.보조금 옵션
. 예를 들어, 표T1
Role 소유G1
, 그 토토 꽁 머니U1
멤버입니다.U1
특권을 부여 할 수 있습니다T1
toU2
, 그러나 그 특권은에 의해 직접 부여 된 것으로 보일 것입니다.G1
. 토토 꽁 머니의 다른 구성원G1
나중에 취소 할 수 있습니다.
토토 꽁 머니이 실행되는 경우그랜트
두 개 이상의 토토 꽁 머니 멤버십 경로를 통해 필요한 권한을 간접적으로 보유하고 있으며, 그 보조금을 포함한 토토 꽁 머니을 포함하는 것은 지정되지 않습니다. 그러한 경우 사용하는 것이 가장 좋습니다토토 꽁 머니 설정
당신이하고 싶은 특정 토토 꽁 머니이 되려면grant
as.
테이블에 허가 부여는 테이블에 사용 된 시퀀스에 대한 권한을 자동으로 연장하지 않습니다.Serial
열. 시퀀스에 대한 권한은 별도로 설정해야합니다.
참조PostgreSQL : 문서 : 14 : 5.7. 범퍼카 토토특정 권한 유형에 대한 자세한 내용과 물체의 권한을 검사하는 방법.
테이블의 모든 사용자에게 삽입 권한을 부여영화
:
필름에 공개 삽입을 그랜트 삽입;
사용 가능한 모든 권한을 사용자에게 부여Manuel
in viewKinds
:
Manuel에게 모든 특권을 부여;
위의 슈퍼 사용자 또는 소유자가 실행 한 경우 위는 실제로 모든 권한을 부여 할 것입니다.Kinds
, 다른 사람이 처형하면 다른 사람이 보조금 옵션을 보유한 권한 만 부여합니다.
토토 꽁 머니 멤버십 보조금Admins
Joe
:
Joe에게 관리자를 부여하십시오;
SQL 표준에 따르면특권
키워드모든 권한
가 필요합니다. SQL 표준은 명령 당 하나 이상의 오브젝트에서 권한을 설정하는 것을 지원하지 않습니다.
PostgreSQL객체 소유자가 자신의 평범한 권한을 취소 할 수 있습니다. 예를 들어, 테이블 소유자는 자신의 자신의 것을 취소하여 테이블을 읽을 수 있습니다삽입
, 업데이트
, 삭제
및Truncate
특권. 이것은 SQL 표준에 따라 불가능합니다. 그 이유는PostgreSQL소유자의 특권을 소유자가 자신에게 부여한 것으로 취급합니다. 그러므로 그들은 그들도 그들을 취소 할 수 있습니다. SQL 표준에서 소유자의 권한은 가정 된 엔티티에 의해 부여됩니다“_system”. 존재하지 않는다“_System”, 소유자는 이러한 권리를 취소 할 수 없습니다.
SQL 표준에 따르면, 보조금 옵션을 부여 할 수 있습니다공개
; PostgreSQL은 역할에 대한 보조금 옵션 부여 만 지원합니다.
SQL 표준은를 허용합니다.부여
만 지정하는 옵션current_user
또는current_role
. 다른 변형은 PostgreSQL 확장입니다.
SQL 표준은 a를 제공합니다.usage
다른 종류의 대상에 대한 특권 : 문자 세트, 콜라주, 번역.
SQL 표준에서 시퀀스 만 만 있습니다.usage
특권,다음 값
expression, 함수와 동일합니다NextVal
postgresql에서. 시퀀스 권한select
및업데이트
PostgreSQL 확장자입니다. 시퀀스의 적용usage
Currval
함수는 또한 PostgreSQL 확장자입니다 (함수 자체와 마찬가지로).
데이터베이스, 테이블 스페이스, 스키마 및 언어의 권한은PostgreSQL확장.
문서에 올바른 것이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면