복제 연결에 사용되는 역할에는가 있어야합니다.복제
속성 (또는 슈퍼 유저). 역할이 부족한 경우SuperUser
andBYSPASSRLS
, 게시자 행 토토 사이트 정책이 실행될 수 있습니다. 역할이 모든 테이블 소유자를 신뢰하지 않는 경우 포함옵션 = -Crow_Security = Off
연결 문자열에서; 테이블 소유자가 행 보안 정책을 추가하면 해당 설정으로 인해 정책을 실행하기보다는 복제가 중단됩니다. 역할에 대한 액세스는에서 구성해야합니다.pg_hba.conf
로그인
속성.
초기 테이블 데이터를 복사하려면 복제 연결에 사용 된 역할에는가 있어야합니다.select
게시 된 테이블의 특권 (또는 슈퍼업자).
출판물을 만들려면 사용자에게가 있어야합니다.Create
데이터베이스의 권한.
게시물에 테이블을 추가하려면 사용자는 테이블에 소유권 권한이 있어야합니다. 스키마의 모든 테이블을 출판물에 추가하려면 사용자가 슈퍼 사용자 여야합니다. 스키마의 모든 테이블 또는 모든 테이블을 자동으로 게시하는 게시물을 작성하려면 사용자는 슈퍼업자 여야합니다.
현재 출판물에는 특권이 없습니다. 연결할 수있는 모든 구독 (모든 구독)은 모든 출판물에 액세스 할 수 있습니다. 따라서 행 필터 또는 열 목록을 사용하거나 전체 테이블을 출판물에 추가하지 않음과 같은 특정 가입자로부터 일부 정보를 숨기려는 경우 동일한 데이터베이스의 다른 출판물이 동일한 정보를 노출시킬 수 있습니다. 출판물 권한이 추가 될 수 있습니다PostgreSQL미래에 더 미세한 액세스 제어를 허용합니다.
구독을 만들려면 사용자는의 권한이 있어야합니다.pg_create_subscription
역할 및Create
데이터베이스의 권한.
구독 적용 프로세스는 세션 수준에서 가입자의 권한과 함께 실행됩니다. 그러나 특정 테이블에서 삽입, 업데이트, 삭제 또는 자르기 작업을 수행 할 때는 테이블 소유자로 역할을 전환하고 테이블 소유자의 권한으로 작업을 수행합니다. 이것은 가입자가 할 수 있어야한다는 것을 의미합니다.역할 설정
복제 테이블을 소유 한 각 역할에.
구독이로 구성된 경우run_as_owner = true
, 그러면 사용자 스위칭이 발생하지 않습니다. 대신, 모든 운영은 가입자의 권한으로 수행됩니다. 이 경우 가입 소유자는에 대한 권한 만 있으면됩니다.select
, 삽입
, 업데이트
및삭제
대상 테이블에서, 그리고에 특권이 필요하지 않습니다.역할 설정
테이블 소유자에게. 그러나 이는 복제가 발생하는 테이블을 소유 한 모든 사용자가 가입 소유자의 권한과 함께 임의의 코드를 실행할 수 있음을 의미합니다. 예를 들어, 그들은 단순히 자신이 소유 한 테이블 중 하나에 트리거를 첨부하여이를 수행 할 수 있습니다. 일반적으로 한 역할이 다른 사람의 권한을 자유롭게 가정하는 것은 바람직하지 않기 때문에 데이터베이스 내의 사용자 보안이 걱정되지 않는 한이 옵션을 피해야합니다.
출판사에서 권한은 복제 연결을 시작할 때 한 번만 확인되며 각 변경 레코드가 읽을 때 다시 확인하지 않습니다..
가입자에서 가입자의 권한은 적용될 때 각 거래에 대해 다시 확인됩니다. 동시 거래에 의해 구독의 소유권이 변경 될 때 근로자가 거래를 적용하는 과정에있는 경우, 현재 거래의 적용은 이전 소유자의 특권에 따라 계속됩니다..
올바른 문서에 아무것도 표시되면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면