지원되는 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

44.5. 신뢰할 수 있고 신뢰할 수없는 pl/와이즈 토토

일반적으로 pl/와이즈 토토이 a로 설치됩니다.신뢰할 수있는프로그래밍 언어 이름pl와이즈 토토. 이 설정에서는 보안을 유지하기 위해 특정 와이즈 토토 작업이 비활성화됩니다. 일반적으로 제한된 작업은 환경과 상호 작용하는 작업입니다. 여기에는 파일 핸들 작업이 포함됩니다.요구use(외부 모듈의 경우). C 함수가 수행 할 수 있듯이 데이터베이스 서버 프로세스의 내부에 액세스하거나 서버 프로세스의 권한으로 OS 레벨 액세스를 얻는 방법은 없습니다. 따라서 비전지가없는 데이터베이스 사용자는이 언어를 사용할 수 있습니다.

여기에 파일 시스템 작업이 허용되지 않기 때문에 작동하지 않는 함수의 예는 다음과 같습니다.

함수 만들기 badfunc ()는 정수를 $$로 반환합니다
    내 $ tmpfile = "/tmp/badfile";
    내 $ fh, '', $ tmpfile을 엽니 다
        또는 elog (error, qq 파일 "$ tmpfile"파일을 열 수 없음 : $!);
    인쇄 $ fh "파일에 대한 테스트 \ n";
    닫기 $ fh 또는 elog (error, qq 파일 "$ tmpfile": $!)를 닫을 수 없습니다);
    반환 1;
$$ 언어 pl와이즈 토토;

금지 된 작업의 사용이 유효성 검사기에 의해 잡히기 때문에이 함수의 생성은 실패 할 것입니다.

때로는 제한되지 않은 와이즈 토토 기능을 작성하는 것이 바람직합니다. 예를 들어, 메일을 보내는 와이즈 토토 함수가 필요할 수 있습니다. 이러한 사례를 처리하려면 PL/와이즈 토토도로 설치할 수도 있습니다.신뢰할 수없는언어 (일반적으로pl/와이즈 토토u). 이 경우 전체 와이즈 토토 언어를 사용할 수 있습니다. 언어를 설치할 때 언어 이름Pl와이즈 토토u신뢰할 수없는 PL/PERL 변형을 선택합니다.

A의 작가pl/와이즈 토토u함수는 데이터베이스 관리자로 로그인 한 사용자가 수행 할 수있는 모든 것을 수행 할 수 있기 때문에 함수가 원치 않는 작업을 수행 할 수 없도록 조심해야합니다. 데이터베이스 시스템을 통해 데이터베이스 슈퍼 사용자 만 신뢰할 수없는 언어로 기능을 생성 할 수 있습니다.

언어를 사용하여 슈퍼업자가 위의 함수를 생성 한 경우Pl와이즈 토토u, 실행이 성공합니다.

같은 방식으로, 언어가 지정된 경우 와이즈 토토에 작성된 익명 코드 블록은 제한된 작업을 사용할 수 있습니다Pl와이즈 토토u대신pl와이즈 토토, 그러나 발신자는 슈퍼업자 여야합니다.

Note

whilepl/와이즈 토토함수는 각 SQL 역할에 대해 별도의 와이즈 토토 통역사에서 실행됩니다.pl/와이즈 토토u주어진 세션에서 실행 된 기능은 단일 와이즈 토토 통역사에서 실행됩니다 (pl/와이즈 토토함수). 이것은 허용pl/와이즈 토토u데이터를 자유롭게 공유 할 수있는 기능이지만 그 사이에 커뮤니케이션이 발생할 수 없습니다pl/와이즈 토토andpl/와이즈 토토u기능.

Note

와이즈 토토은 적절한 플래그로 구축되지 않으면 하나의 프로세스 내에서 여러 통역사를 지원할 수 없습니다.usemultiplicity또는useitHreads. (usemultiplicity실제로 스레드를 사용하지 않으면 선호됩니다. 자세한 내용은를 참조하십시오.와이즈 토토embedMan Page.) ifpl/와이즈 토토이 방법으로 구축되지 않은 와이즈 토토 사본과 함께 사용되면 세션 당 하나의 와이즈 토토 통역사 만 가질 수 있으므로 한 세션은 어느 쪽이든 실행할 수 있습니다.pl/와이즈 토토u함수 또는pl/와이즈 토토동일한 SQL 역할로 모두 호출되는 기능.