이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 43.5. 신뢰할 수 있고 신뢰할 수없는 pl/토토 사이트 순위버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

42.5. 무지개 토토 수 있고 무지개 토토 수없는 pl/perl

일반적으로 pl/perl이 a로 설치됩니다."무지개 토토 수있는"프로그래밍 언어 이름plperl. 이 설정에서는 특정 Perl 작업이 있습니다 보안을 보존하기 위해 비활성화되었습니다. 일반적으로 운영 환경과 상호 작용하는 것입니다. 이것 파일 핸들 작업 포함요구, 그리고use(외부 모듈의 경우). 거기 있습니다 데이터베이스 서버 프로세스의 내부에 액세스하거나 다음과 같이 서버 프로세스의 권한으로 OS 레벨 액세스를 얻습니다. C 함수는 수행 할 수 있습니다. 따라서 비전지가없는 데이터베이스 사용자는 될 수 있습니다 이 언어를 사용할 수 있습니다.

여기에 작동하지 않는 함수의 예는 다음과 같습니다. 보안상의 이유로 시스템 운영은 허용되지 않습니다.

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

이 기능의 생성은 금지 된 작업은 유효성 검사기에 의해 잡힐 것입니다.

때로는 그렇지 않은 Perl 기능을 작성하는 것이 바람직합니다. 제한된. 예를 들어, 전송하는 Perl 함수를 원할 수도 있습니다. 우편. 이러한 사례를 처리하려면 PL/PERL도로 설치할 수도 있습니다."무지개 토토 수없는"언어 (일반적으로pl/perlu). 이 경우 전체 Perl 언어를 사용할 수 있습니다. 언어를 설치할 때 언어 이름Plperlu를 선택합니다 무지개 토토 수없는 PL/PERL 변형.

A의 작가pl/perlu함수는 기능을 사용할 수 없도록 조심해야합니다. 원치 않는 것은 데이터베이스 관리자로 로그인 한 사용자가 수행합니다. 메모 데이터베이스 시스템을 통해 데이터베이스 슈퍼 사용자 만 생성 할 수 있습니다. 무지개 토토 수없는 언어의 기능.

위의 기능이 언어Plperlu, 실행 성공.

같은 방식으로 Perl에 작성된 익명 코드 블록은 사용할 수 있습니다. 언어가로 지정되는 경우 제한된 작업Plperlu대신plperl, 그러나 발신자는 수퍼 유저 여야합니다.

참고 :whilepl/perl함수는 각 SQL 역할에 대해 별도의 Perl 통역사에서 실행됩니다.pl/perlu함수는 a 주어진 세션이 단일 Perl 통역사에서 실행됩니다 (어떤 것도 아닙니다. 에 사용 된 것들pl/perl함수). 이것은 허용pl/perlu데이터를 자유롭게 공유하는 기능이지만 커뮤니케이션이 발생할 수 없습니다. 사이pl/perlandpl/perlu기능.

참고 :Perl은 여러 통역사를 지원할 수 없습니다 적절한 플래그로 제작되지 않는 한 하나의 프로세스, 즉 어느 하나usemultiplicity또는useitHreads. (usemultiplicity실제로 당신이하지 않는 한 선호됩니다 스레드를 사용해야합니다. 자세한 내용은를 참조하십시오.perlembedMan Page.) ifpl/perl사본과 함께 사용됩니다 이런 식으로 만들어지지 않은 perl, 그렇다면 세션 당 하나의 Perl 통역사이므로 하나의 세션 만 중 하나 실행pl/perlu기능, 또는pl/perl전부 인 기능 동일한 SQL 역할로 호출됩니다.