정책 만들기-표에 대한 새 행 수준 보안 정책 정의
정책 만들기이름
ontable_name
[as 허용 | 제한적] [all | 선택 | 삽입 | 토토 사이트 | 삭제 ] [ 에게role_name
| 공개 | current_role | current_user | session_user [, ...]] [사용 ( 사용using_expression
)]] [check (와 함께check_expression
)]
the정책 작성
명령은 테이블에 대한 새 행 수준 보안 정책을 정의합니다. 표에서로드 레벨 보안을 활성화해야합니다 (사용ALTER 테이블 ... 행 레벨 보안 활성화
) 생성 된 정책을 적용하려면
정책은 관련 정책 표현식과 일치하는 행을 선택, 삽입, 토토 사이트 또는 삭제할 수있는 권한을 부여합니다. 기존 테이블 행은에 지정된 표현에 대해 확인됩니다.사용
, 새로운 행을 통해 생성 될 새로운 행삽입
또는토토 사이트
에 지정된 표현에 대해 확인됩니다with with
. A사용
표현식은 주어진 행에 대해 true를 반환 한 다음 해당 행이 사용자에게 표시되는 반면 False 또는 Null이 반환되면 행을 보이지 않습니다. Awith with
표현식은 행에 대해 true를 반환하고 해당 행이 삽입되거나 토토 사이트되고 False 또는 NULL이 반환되면 오류가 발생합니다.
for삽입
, 토토 사이트
및병합
진술,with with
표현은 이후에 시행됩니다.전
트리거가 발사되고 실제 데이터 수정이 이루어지기 전에. 따라서 A전 행
트리거 삽입 할 데이터를 수정하여 보안 정책 검사 결과에 영향을 미칩니다.with with
표현은 다른 제약보다 먼저 시행됩니다.
정책 이름은 테이블 당입니다. 따라서 하나의 정책 이름은 여러 테이블에 사용될 수 있으며 해당 테이블에 적합한 각 테이블에 대한 정의가 있습니다.
정책은 특정 명령 또는 특정 역할에 적용될 수 있습니다. 새로 생성 된 정책의 기본값은 달리 명시되지 않는 한 모든 명령과 역할에 적용한다는 것입니다. 여러 정책이 단일 명령에 적용될 수 있습니다. 자세한 내용은 아래를 참조하십시오.표 292다른 유형의 정책이 특정 명령에 적용되는 방법을 요약합니다.
둘 다 가질 수있는 정책의 경우사용
andwith with
표현 (all
and토토 사이트
), 그렇지 않은 경우with with
표현식이 정의 된 다음사용
표현식은 어떤 행이 보이는지를 결정하는 데 사용됩니다 (정상사용
CASE) 및 어떤 새 행을 추가 할 수 있는지 (with with
CASE).
테이블에 대한로드 레벨 보안이 활성화되어 있지만 적용 가능한 정책이 존재하지 않으면 A“기본 거부”정책이 가정되므로 행이 보이거나 토토 사이트 할 수 없습니다.
이름
생성 될 정책의 이름. 이것은 표에 대한 다른 정책의 이름과 구별되어야합니다.
table_name
표의 이름 (선택적으로 스키마 자격) 정책이 적용됩니다.
허용
정책이 허용 정책으로 작성되어야한다고 지정하십시오. 주어진 쿼리에 적용 가능한 모든 허용 정책은 부울을 사용하여 함께 결합됩니다.“또는”운영자. 허용 정책을 만들어 관리자는 액세스 할 수있는 일련의 레코드에 추가 할 수 있습니다. 정책은 기본적으로 허용됩니다.
제한적
Specify that the policy is to be created as a restrictive policy. 주어진 쿼리에 적용 가능한 모든 제한 정책은 부울을 사용하여 함께 결합됩니다.“and”연산자. 제한 정책을 만들어 관리자는 각 레코드에 대해 모든 제한 정책을 전달해야하므로 액세스 할 수있는 레코드 세트를 줄일 수 있습니다.
제한 정책을 유용하게 사용하여 해당 액세스를 줄이기 전에 기록에 대한 액세스 권한을 부여하기 위해 적어도 하나의 허용 정책이 필요합니다. 제한 정책 만 존재하면 기록에 액세스 할 수 없습니다. 허용적이고 제한적인 정책이 혼합 될 때, 모든 제한 정책 외에 허용 정책 중 하나 이상이 통과하는 경우에만 기록이 접근 할 수 있습니다..
명령
정책이 적용되는 명령. 유효한 옵션은all
, select
, 삽입
, 토토 사이트
및삭제
. all
기본값입니다. 이들이 적용되는 방법에 대한 세부 사항은 아래를 참조하십시오.
role_name
정책을 적용 할 역할. 기본값은public
, 모든 역할에 정책을 적용 할 것입니다.
using_expression
anySQL조건부 표현식 (반환부울
). 조건부 표현식에는 집계 또는 창 함수가 포함될 수 없습니다. 이 표현식은로드 레벨 보안이 활성화 된 경우 테이블을 참조하는 쿼리에 추가됩니다. 표현식이 true를 반환하는 행이 보입니다. 표현식이 False 또는 NULL을 반환하는 행은 사용자에게 보이지 않습니다 (Aselect
), 수정에 사용할 수 없습니다 (in토토 사이트
또는삭제
). 이러한 행은 조용히 억제됩니다. 오류 가보고되지 않습니다.
check_expression
anySQL조건부 표현식 (반환부울
). 조건부 표현식에는 집계 또는 창 함수가 포함될 수 없습니다. 이 표현은에서 사용됩니다.삽입
and토토 사이트
행 수준 보안이 활성화 된 경우 테이블에 대한 쿼리. 표현식이 TRUE로 평가하는 행만 허용됩니다. 삽입 된 레코드 또는 토토 사이트로 인한 레코드에 대해 표현식이 False 또는 Null로 평가되면 오류가 발생합니다.check_expression
원래 내용이 아닌 제안 된 새로운 내용에 대해 평가됩니다.
all
#사용all
정책의 경우 명령 유형에 관계없이 모든 명령에 적용됨을 의미합니다. IF anall
정책이 존재하고보다 구체적인 정책이 존재합니다.all
정책 및보다 구체적인 정책 (또는 정책)이 적용됩니다. 또한,all
정책은 쿼리의 선택 측면과 수정 측면 모두에 적용됩니다.사용
두 경우에 대한 표현사용
표현이 정의되었습니다.
예를 들어, an토토 사이트
발행 된 다음all
정책은 무엇에 적용 할 수 있습니다토토 사이트
토토 사이트 할 행으로 선택할 수 있습니다 (적용사용
expression) 및 결과 토토 사이트 된 행에 테이블에 추가 될 수 있는지 확인하십시오 (with with
표현, 정의 된 경우사용
그렇지 않으면 표현). IF an삽입
또는토토 사이트
명령을 통과하지 않는 테이블에 행을 추가하려고 시도합니다all
정책with with
표현, 전체 명령이 중단됩니다.
select
#사용select
정책의 경우select
쿼리 및 언제라도select
정책이 정의 된 관계에 대한 권한이 필요합니다. 결과적으로 통과하는 관계의 레코드 만입니다.select
정책은 a 동안 반환됩니다select
쿼리, 그리고 필요한 쿼리select
예 : 권한토토 사이트
, 또한에 의해 허용되는 레코드 만 볼 수 있습니다.select
정책. 에이select
정책을 가질 수 없음with Check
표현, 관계에서 기록이 검색되는 경우에만 적용되므로
삽입
#사용삽입
정책의 경우INSERT
명령 및병합
포함하는 명령삽입
행동. 이 정책을 통과하지 못하는 행이 삽입되는 행은 정책 위반 오류가 발생하며 전체삽입
명령이 중단됩니다.삽입
정책을 가질 수 없음사용
표현, 레코드가 관계에 추가되는 경우에만 적용되므로
참고삽입
with충돌에 대한 토토 사이트
checks삽입
정책 'with with
|삽입
Path.
토토 사이트
#사용토토 사이트
정책의 경우에 적용됨을 의미합니다.토토 사이트
, 토토 사이트 선택
and공유 선택
보조 및 보조 명령충돌에 대한 토토 사이트
클로즈의삽입
명령.병합
포함하는 명령토토 사이트
행동도 영향을받습니다. 부터토토 사이트
기존 레코드를 가져 와서 새로운 수정 된 레코드로 교체하는 것과 관련이 있습니다.토토 사이트
정책은 모두 A를 수락합니다.사용
표현 및 Awith with
표현. 그만큼사용
표현식을 기록한 표현토토 사이트
명령은 작동하는 동안with Check
표현식은 어떤 수정 된 행이 관계에 다시 저장 될 수 있는지 정의합니다.
토토 사이트 된 값이 전달되지 않는 행with with
표현식으로 인해 오류가 발생하고 전체 명령이 중단됩니다. 만있는 경우사용
절의 조항이 지정되면 해당 조항이 모두 사용됩니다사용
andwith Check
케이스.
일반적으로토토 사이트
명령도 토토 사이트중인 관계의 열에서 데이터를 읽어야합니다 (예 :여기서
절 또는 A반환
조항 또는 오른쪽의 표현set
절). 이 경우select
토토 사이트중인 관계에 대한 권리도 필요하며 적절한select
또는all
정책이 적용됩니다토토 사이트
정책. 따라서 사용자는 a를 통해 토토 사이트되는 행에 액세스해야합니다.select
또는all
정책은 AN을 통해 행을 토토 사이트 할 수있는 권한을 부여받는 것 외에도토토 사이트
또는all
정책.
언제삽입
명령은 보조충돌시 토토 사이트
절인 경우토토 사이트
경로가 가져오고, 토토 사이트 될 행이 먼저에 대해 확인됩니다사용
어떤 표현토토 사이트
정책, 그리고 새로운 토토 사이트 된 행이에 대해 확인됩니다with with
표현. 그러나 독립형과 달리토토 사이트
명령, 기존 행이 전달되지 않으면사용
표현, 오류가 발생합니다 (토토 사이트
경로는절대조용히 피하십시오).
삭제
#사용삭제
정책의 경우 정책이 적용됨을 의미합니다.삭제
명령. 이 정책을 통과하는 행만이 A를 볼 수 있습니다.삭제
명령. A를 통해 볼 수있는 행이있을 수 있습니다.select
삭제에 사용할 수없는 것은사용
표현삭제
정책.
대부분의 경우 a삭제
명령은 또한 삭제되는 관계의 열에서 열에서 데이터를 읽어야합니다 (예 : a여기서
절 또는 A반환
절). 이 경우select
관계에 대한 권리도 필요하며 적절한select
또는all
정책이 적용됩니다삭제
정책. 따라서 사용자는 a를 통해 삭제되는 행에 액세스해야합니다.select
또는all
정책 A a를 통해 행을 삭제할 수있는 권한이 부여 된 것 외에도삭제
또는all
정책.
a삭제
정책을 가질 수 없음with with
표현식, 레코드가 관계에서 삭제되는 경우에만 적용되므로 확인할 새 행이 없습니다.
표 292. 명령 유형에 의해 적용되는 정책
명령 | 선택/모든 정책 |
삽입/모든 정책 |
토토 사이트/모든 정책 |
삭제/모든 정책 |
|
---|---|---|---|---|---|
표현 사용 |
with with expression |
표현 사용 |
with with expression |
표현 사용 |
|
select |
기존 행 | - | - | - | - |
토토 사이트/공유 선택 |
기존 행 | - | 기존 행 | - | - |
삽입 / 병합 ... 그런 다음 삽입 |
- | New Row | - | - | - |
삽입 ... 리턴 |
New Row[A] | New Row | - | - | - |
토토 사이트 / 병합 ... 그런 다음 토토 사이트 |
기존 및 새로운 행[a] | - | 기존 행 | New Row | - |
삭제 |
기존 행[a] | - | - | - | 기존 행 |
충돌시 토토 사이트 |
기존 및 새 행 | - | 기존 행 | New Row | - |
[a]기존 또는 새 행에 읽기 액세스가 필요한 경우 (예 : A |
다른 명령 유형의 여러 정책이 동일한 명령에 적용되는 경우 (예 :select
and토토 사이트
정책에 적용토토 사이트
명령), 사용자는 두 유형의 권한을 두 가지 유형 (예 : 관계에서 행을 선택할 수있는 권한과 토토 사이트 권한)을 가져야합니다. 따라서 한 유형의 정책에 대한 표현은를 사용하여 다른 유형의 정책에 대한 표현과 결합됩니다.and
운영자.
동일한 명령 유형의 여러 정책이 동일한 명령에 적용되면 하나 이상이 있어야합니다허용
관계에 대한 액세스 권한 부여 정책 및 모든제한적
정책이 통과해야합니다. 따라서 모든허용
정책 표현은를 사용하여 결합됩니다또는
, 모든제한적
정책 표현은를 사용하여 결합됩니다.및
, 결과는를 사용하여 결합됩니다.및
. 없는 경우허용
정책, 액세스가 거부됩니다.
여러 정책을 결합 할 목적으로all
정책은 다른 유형의 정책이 적용되는 것과 동일한 유형을 갖는 것으로 취급됩니다.
예를 들어,토토 사이트
둘 다 요구하는 명령select
and토토 사이트
권한, 각 유형의 여러 해당 정책이 있으면 다음과 같이 결합됩니다.
표현
제한적인 선택/모든 정책 1 그리고표현
제한 선택/모든 정책 2 그리고 ... 그리고 (표현
허용 선택/모든 정책 1 또는표현
허용 선택/모든 정책 2 또는 ... )) 그리고표현
제한적 토토 사이트/모든 정책 1 그리고표현
제한적 토토 사이트/모든 정책 2 그리고 ... 그리고 (표현
허용 토토 사이트/모든 정책 1 또는표현
허용 토토 사이트/모든 정책 2 또는 ... )
당신은 정책을 만들거나 변경하기위한 테이블의 소유자 여야합니다.
정책은 데이터베이스의 테이블에 대한 명백한 쿼리에 적용되지만 시스템이 내부 참조 무결성 검사를 수행하거나 제약 조건을 확인할 때 적용되지 않습니다. 이것은 주어진 값이 존재한다고 결정하는 간접적 인 방법이 있음을 의미합니다. 이에 대한 예는 기본 키이거나 고유 한 제약 조건을 갖는 열에 중복 값을 삽입하려고 시도하는 것입니다. 삽입이 실패하면 사용자는 값이 이미 존재한다고 추론 할 수 있습니다. (이 예제는 정책에 의해 사용자가 볼 수없는 레코드를 삽입하도록 허용된다고 가정합니다.) 다른 예는 사용자가 다른 사람을 참조하는 테이블에 삽입 할 수있는 곳입니다. 존재는 사용자가 참조 테이블에 값을 삽입하여 결정할 수 있으며, 여기서 성공은 참조 테이블에 값이 존재 함을 나타냅니다. 이러한 문제는 신중하게 제작 된 정책을 제작하여 사용자가 레코드를 삽입, 삭제 또는 토토 사이트 할 수 없으며, 그렇지 않으면 볼 수없는 값을 표시하거나 외부 의미를 가진 키 대신 생성 된 값 (예 : 대리 키)을 사용할 수 있습니다..
일반적으로 시스템은 사용자 쿼리에 나타나는 자격을 갖춘 보안 정책을 사용하여 부과 된 필터 조건을 시행하여 보호 된 데이터를 사용자 정의 기능에 부적절하게 노출하지 못하도록하지 않을 수 있습니다. 그러나 시스템 (또는 시스템 관리자)에 의해 표시된 기능 및 운영자는LeakProof
정책 표현 전에 평가 될 수 있습니다.
정책 표현이 사용자의 쿼리에 직접 추가되므로 전체 쿼리를 실행하는 사용자의 권한으로 실행됩니다. 따라서 주어진 정책을 사용하는 사용자는 표현식에서 참조 된 테이블 또는 기능에 액세스 할 수 있어야합니다. 그렇지 않으면 행 수준 보안을 활성화 한 테이블을 쿼리하려고 시도 할 때 단순히 허가 거부 오류를 받게됩니다. 그러나 이것은보기의 작동 방식을 바꾸지 않습니다. 정상적인 쿼리 및 뷰와 마찬가지로보기로 참조되는 테이블에 대한 권한 점검 및 정책은 뷰 소유자의 권리와보기를 사용하여 정의 된 경우를 제외하고 뷰 소유자의 권리와보기 소유자에게 적용되는 정책을 사용합니다.Security_Invoker
옵션 (참조보기 만들기
).
별도의 정책이 없습니다병합
. 대신, 정의 된 정책은select
, 삽입
, 토토 사이트
및삭제
실행 중에 적용됩니다병합
, 수행되는 동작에 따라
추가 토론 및 실제 사례는 찾을 수 있습니다PostgreSQL : 문서 : 16 : 5.8. 보안 토토 베이 행.
정책 작성
isPostgreSQL확장.
문서에 맞지 않는 문서에 아무것도 표시되면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면