PostgreSQL사설 토토 사이트 시스템, 기타 테이블/뷰 원래 쿼리에 사용 된 것보다 액세스 할 수 있습니다. 업데이트시 사설 토토 사이트은 사용되며 테이블에 대한 쓰기 액세스가 포함될 수 있습니다.
재 작성 사설 토토 사이트에는 별도의 소유자가 없습니다. a의 소유자 관계 (표 또는보기)는 자동으로 소유자입니다. 정의 된 사설 토토 사이트을 다시 작성하십시오. 그만큼PostgreSQL사설 토토 사이트 시스템은 동작을 변경합니다 기본 액세스 제어 시스템. 사용되는 관계 사설 토토 사이트 소유자의 권한에 대해 사설 토토 사이트을 확인하십시오. 사설 토토 사이트을 호출하는 사용자가 아닙니다. 이것은 사용자가 필요하다는 것을 의미합니다 그가 이름을 지은 테이블/뷰에 필요한 권한 그의 질문에 명시 적으로.
예 : 사용자는 일부의 전화 번호 목록이 있습니다. 그것들은 사적이고, 다른 사람들은 비서관에게 관심이 있습니다. 사무실. 그는 다음을 구성 할 수 있습니다.
테이블 Create Phone_Data (사람 문자, 전화 텍스트, 개인 부울); 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그리고 데이터를 거기에 복사하십시오 하루에 한 번. 그러면 그것은 자신의 데이터이고 그는 액세스 권한을 부여 할 수 있습니다. 그가 원하는 모든 사람. 에이그랜트명령 수단,"나는 당신을 믿습니다". 누군가가 당신이라면 신뢰는 위의 일을합니다. 이제 생각할 때입니다. 사용Revoke.
뷰는의 내용을 숨기는 데 사용될 수 있습니다. 위에 표시된 기술을 사용하는 특정 열은 보이지 않는 행으로 데이터를 안정적으로 숨기는 데 사용됩니다. 예를 들어, 다음 견해는 안전하지 않습니다 :
view phone_number를 만듭니다 전화 _Data에서 전화를 선택하여 전화가 '412%'를 좋아하지 않는 경우;
사설 토토 사이트 시스템이
다시 작성selectFromPhone_numberatselectPhone_data그리고 어디에있는 곳에서만 자격을 추가하십시오전화412로 시작하지 않습니다. 그러나 만약
사용자는 자신의 기능을 만들 수 있지만 어렵지 않습니다.
플래너가 사용자 정의 함수를 실행하도록 설득합니다
이전좋아하지
표현.
기능 생성 까다 롭습니다 (텍스트, 텍스트)는 bool을 $$로 반환합니다 시작하다 통지 ' % = %', $ 1, $ 2; 진실을 반환하십시오. 끝 $$ 언어 PLPGSQL 비용 0.000000000000000000000001; The Tricky (Person, Phone);에서 * Phone_number에서 *를 선택하십시오.
모든 사람과 전화 번호Phone_data테이블은 A로 인쇄됩니다통지- 플래너가 실행되기를 선택하기 때문에
저렴한까다로운
함수
더 비싼 전좋아하지
.
사용자가 새로운 기능을 정의하는 것을 방지하더라도
내장 기능은 유사한 공격에 사용할 수 있습니다. (예를 들어,
캐스트 기능에는 오류 메시지에 입력이 포함됩니다.
생산하다.)
유사한 고려 사항이 업데이트 규칙에 적용됩니다. 예에서 이전 섹션의 예제에서 테이블의 소유자 데이터베이스는 권한을 부여 할 수 있습니다select, 삽입, 업데이트및삭제onShoelace다른 사람에게 보이지만selectonshoelace_log. 쓰는 사설 토토 사이트 조치 로그 항목은 여전히 성공적으로 실행되며 기타 사용자는 로그 항목을 볼 수 있습니다. 그러나 그는 가짜를 만들 수 없습니다 출품작도 기존의 입장을 조작하거나 제거 할 수 없었습니다. 이것에서 사례, 사설 토토 사이트을 전복시킬 가능성은 없습니다. 플래너가 운영 순서를 변경하도록 설득하는 것입니다. 참고 문헌 유일한 사설 토토 사이트shoelace_log자격이없는 것입니다삽입. 이것은 더 복잡한 경우에 해당되지 않을 수 있습니다 시나리오.