롤 토토 : 문서 : 9.5 : 롤 토토 | |||
---|---|---|---|
브라운 |3_m |2스포츠 토토 베트맨 색 | | PostgreSQL : 문서 : 9.5 : 범퍼카 토토 시스템 | 제 38 장. 스포츠 토토 사이트 시스템 | PostgreSQL : 문서 : 9.5 : 토토 결과 및 명령 상태 |
postgresql스포츠 토토 사이트 시스템, 원래 쿼리에 사용 된 것보다 기타 테이블/뷰가 액세스됩니다. 업데이트 스포츠 토토 사이트을 사용하는 경우 테이블에 대한 쓰기 액세스가 포함될 수 있습니다.
재 작성 스포츠 토토 사이트에는 별도의 소유자가 없습니다. 관계 (표 또는보기)의 소유자는 자동으로 정의 된 재 작성 스포츠 토토 사이트의 소유자입니다. 그만큼postgresql스포츠 토토 사이트 시스템은 기본 액세스 제어 시스템의 동작을 변경합니다. 스포츠 토토 사이트으로 인해 사용되는 관계는 스포츠 토토 사이트을 호출하는 사용자가 아니라 스포츠 토토 사이트 소유자의 권한에 대해 확인됩니다. 이는 사용자가 자신의 질문에 명시 적으로 이름을 지정할 테이블/뷰에 필요한 권한 만 필요하다는 것을 의미합니다.
예 : 사용자는 일부 전화 번호 목록이 있으며 일부는 개인이며 다른 사람들은 사무실 장관에게 관심이 있습니다. 그는 다음을 구성 할 수 있습니다.
테이블 Create Phone_Data (Person Text, Phone Text, Private Boolean); view phone_number를 만듭니다 개인 선택, 사례가없는 경우 전화로 전화로 전화로 종료 Phone_data에서; Phone_number에서 Select Grant Select에서 비서에게;
그 (및 데이터베이스 슈퍼 유저)를 제외한 아무도에 액세스 할 수 없습니다.Phone_data테이블. 하지만 때문에grant, 비서는 a를 운영 할 수 있습니다.selectonPhone_number보기. 스포츠 토토 사이트 시스템은를 다시 작성합니다.selectFromphone_numberatselectFromPhone_data. 사용자는의 소유자이므로Phone_number따라서 스포츠 토토 사이트의 소유자, 읽기 액세스Phone_data이제 그의 권한에 대해 확인하고 쿼리가 허용됩니다. 액세스 점검Phone_number도 수행되지만, 이는 호출 사용자에 대해 수행되므로 사용자와 비서 외에는 아무도 사용할 수 없습니다.
권한은 스포츠 토토 사이트에 따라 스포츠 토토 사이트을 확인합니다. 따라서 비서는 현재 공중 전화 번호를 볼 수있는 유일한 사람입니다. 그러나 장관은 또 다른 견해를 설정하고 대중에게이를 접근 할 수 있습니다. 그런 다음 누구나를 볼 수 있습니다.Phone_number비서의 견해를 통한 데이터. 장관이 할 수없는 것은 직접 접근하는 견해를 만드는 것입니다Phone_data. (실제로 그는 할 수 있지만 모든 액세스가 허가 수표 중에 거부되기 때문에 작동하지 않을 것입니다.) 그리고 사용자가 알게 되 자마자 장관이 자신의 열린 것을 열었습니다.Phone_number보기, 그는 접근을 취소 할 수 있습니다. 즉시 장관의 견해에 대한 접근이 실패 할 것입니다.
이 스포츠 토토 사이트별 검사는 보안 구멍이라고 생각할 수도 있지만 실제로는 그렇지 않습니다. 그러나 이런 식으로 작동하지 않으면 장관은와 같은 열의 테이블을 설정할 수 있습니다.Phone_number그리고 하루에 한 번 데이터를 거기에 복사하십시오. 그런 다음 자신의 데이터이며 원하는 모든 사람에게 액세스 권한을 부여 할 수 있습니다. 에이grant명령 수단,"나는 당신을 믿습니다". 당신이 신뢰하는 사람이 위의 일을한다면, 그것을 생각하고 사용할 시간입니다Revoke.
뷰는 위에 표시된 기술을 사용하여 특정 열의 내용을 숨기는 데 사용될 수 있지만이 아닌 한 보이지 않는 행으로 데이터를 안정적으로 숨기는 데 사용할 수 없습니다.Security_Barrier플래그가 설정되었습니다. 예를 들어 다음 견해는 불안합니다.
view phone_number를 만듭니다 전화 _Data에서 전화를 선택하여 전화가 '412%'를 좋아하지 않는 경우;
스포츠 토토 사이트 시스템이 모든 것을 다시 작성 하므로이보기가 안전 해 보일 수 있습니다selectFromphone_numberatselectFromPhone_data그리고 위치 만 입력하는 자격을 추가전화412로 시작하지 않습니다. 그러나 사용자가 자신의 기능을 만들 수 있다면 플래너가 전에 사용자 정의 기능을 실행하도록 설득하는 것은 어렵지 않습니다.좋아하지
표현. 예를 들어:
기능을 만들어냅니다. 까다로운 (텍스트, 텍스트)는 bool을 $$로 반환합니다 시작하다 통지 ' % = %', $ 1, $ 2; 진실을 반환하십시오. 끝; $$ 언어 PLPGSQL 비용 0.000000000000000000000001; The Tricky (Person, Phone);에서 * Phone_number에서 *를 선택하십시오.
모든 사람과 전화 번호phone_data테이블은 A로 인쇄됩니다통지, 플래너가 저렴한 실행을 선택하기 때문에까다로운
더 비싸기 전의 기능좋아하지 않음
. 사용자가 새로운 기능을 정의하지 못하도록하더라도 비슷한 공격에 내장 기능을 사용할 수 있습니다. (예를 들어, 대부분의 주조 함수에는 생성 된 오류 메시지의 입력 값이 포함됩니다.)
유사한 고려 사항이 업데이트 스포츠 토토 사이트에 적용됩니다. 이전 섹션의 예에서 예제 데이터베이스의 테이블 소유자가 권한을 부여 할 수 있습니다select, 삽입, 업데이트및삭제onShoelace다른 사람을 보지만selectonshoelace_log. 로그 항목을 작성하는 스포츠 토토 사이트 조치는 여전히 성공적으로 실행되며 다른 사용자는 로그 항목을 볼 수 있습니다. 그러나 그는 가짜 항목을 만들 수 없으며 기존의 입장을 조작하거나 제거 할 수 없습니다. 이 경우, 플래너가 운영 순서를 변경하도록 설득함으로써 스포츠 토토 사이트을 전복시킬 가능성이 없습니다.Shoelace_log자격이없는 것입니다삽입. 더 복잡한 시나리오에서는 사실이 아닐 수도 있습니다.
행 수준 보안을 제공하기 위해보기가 필요한 경우Security_Barrier속성은보기에 적용되어야합니다. 이로 인해 악의적으로 선택된 기능과 연산자는보기가 작업을 수행 한 후까지 행에서 전달되는 값을 방지하지 못합니다. 예를 들어, 위에 표시된 뷰가 다음과 같이 생성 된 경우 다음과 같습니다.
(security_barrier)를 사용하여 view phone_number를 만듭니다 전화 _Data에서 전화를 선택하여 전화가 '412%'를 좋아하지 않는 경우;
Security_Barrier이 옵션없이 생성 된 뷰보다 훨씬 나빠질 수 있습니다. 일반적으로이를 피할 방법이 없습니다. 보안을 손상시킬 수 있다면 가능한 가장 빠른 계획을 거부해야합니다. 이러한 이유로이 옵션은 기본적으로 활성화되지 않습니다.
쿼리 플래너는 부작용이없는 함수를 다룰 때 유연성이 더 높습니다. 이러한 기능은라고합니다.LeakProof, 많은 평등 연산자와 같이 많은 단순하고 일반적으로 사용되는 연산자를 포함합니다. 쿼리 플래너는 쿼리 실행 프로세스의 어느 시점에서도 이러한 기능을 안전하게 평가할 수 있습니다. 사용자가 보이지 않는 행에서 호출하면 보이지 않는 행에 대한 정보가 유출되지 않기 때문입니다. 또한, 인수를받지 않거나 보안 장벽보기에서 인수가 전달되지 않은 기능은로 표시 될 필요가 없습니다.LeakProof뷰에서 데이터를받지 못하므로 밀려 나옵니다. 대조적으로, 인수로 수신 된 값에 따라 오류를 던질 수있는 함수 (예 : 오버플로 또는 분할이 0으로 오류를 던지는 것과 같은)는 누출 방지되지 않으며 보안보기의 행 필터에 적용되면 보이지 않는 행에 대한 중요한 정보를 제공 할 수 있습니다..
Security_Barrier옵션은 보이지 않는 튜플의 내용이 안전하지 않은 기능으로 전달되지 않는다는 제한된 의미에서만 안전하도록 고안되었습니다. 사용자는 보이지 않는 데이터에 대해 추론하는 다른 수단이있을 수 있습니다. 예를 들어, 쿼리 계획을 사용하여를 볼 수 있습니다.설명또는보기에 대한 쿼리 실행 시간을 측정하십시오. 악의적 인 공격자는 보이지 않는 데이터의 양에 대한 것을 유추하거나 데이터 배포 또는 가장 일반적인 값에 대한 정보를 얻을 수있을 수도 있습니다 (이러한 것들이 계획의 실행 시간에 영향을 줄 수 있으므로, 심지어 최적화 통계에 반영되기 때문에 계획의 선택). 이러한 유형의 "은밀한 채널"공격이 우려되는 경우 데이터에 대한 액세스 권한을 전혀 부여하는 것은 현명하지 않을 것입니다.
브라운 |3_m |2스포츠 토토 베트맨 색 | | 롤 토토 : 문서 : 9.5 : 롤 토토 9.5.25 문서화 | PostgreSQL : 문서 : 9.5 : 토토 결과 및 명령 상태 |
스포츠 토토 사이트삽입, 업데이트및삭제 | PostgreSQL : 문서 : 9.5 : 범퍼카 토토 시스템 | 스포츠 토토 사이트 및 명령 상태 |