35.4. 서버 측 토토#

SQL에서 큰 객체를 조작하기 위해 조정 된 서버 측 토토표 35.1.

표 35.1. SQL 지향 대형 객체 함수

function

설명

예제

116PostgreSQL : 문서 : 16 : 35.4. 서버 측 토토58(loid OID, 데이터 BYTEA) →OID

큰 물건을 생성하고 저장데이터안에. 만약에loid0은 0입니다. 그러면 시스템은 무료 OID를 선택합니다. 그렇지 않으면 OID가 사용됩니다 (일부 큰 오브젝트에 이미 OID가있는 경우 오류가 있습니다). 성공시, 큰 물체의 OID가 반환됩니다.

lo_from_bytea (0, '\ xffffff00')24528

lo_put(loid OID, 오프셋 bigint, 데이터 BYTEA) →void

쓰기데이터큰 객체 내에서 주어진 오프셋에서 시작; 필요한 경우 큰 물체가 확대됩니다.

lo_put (24528, 1, '\ xaa')

lo_get(loid OID[, 오프셋 bigint, 길이 정수]) →BYTEA

큰 물체의 내용물 또는 그 하위 문자열을 추출합니다.

lo_get (24528, 0, 3)\ xffaaff


앞에서 설명한 각 클라이언트 측 기능에 해당하는 추가 서버 측 기능이 있습니다. 실제로, 대부분의 경우 클라이언트 측 기능은 단순히 동등한 서버 측 기능과의 인터페이스입니다. SQL 명령을 통해 호출하는 것이 편리한 것과 마찬가지로lo_creat, lo_create, lo_unlink, lo_importlo_export. 다음은 사용의 예입니다.

테이블 이미지 생성 (
    이름 텍스트,
    래스터 OID
);

LO_CREAT (-1)를 선택하십시오.       - 새롭고 빈 큰 물체의 OID를 반환합니다

LO_CREATE (43213)를 선택하십시오.   - OID 43213으로 큰 객체를 만들려고 시도합니다

LO_UNLINK (173454)를 선택하십시오.  - OID 173454로 큰 물체를 삭제합니다

이미지 삽입 (이름, 래스터)
    값 ( '아름다운 이미지', lo_import ( '/etc/motd'));

이미지 (이름, 래스터)에 삽입 - 위와 동일하지만 사용할 OID를 지정하십시오.
    값 ( '아름다운 이미지', lo_import ( '/etc/motd', 68583));

이미지에서 lo_export (image.raster, '/tmp/motd')를 선택하십시오
    여기서 이름 = '아름다운 이미지';

서버 측lo_importandlo_export기능은 클라이언트 측 아날로그와 상당히 다르게 행동합니다. 이 두 기능은 데이터베이스 소유 사용자의 권한을 사용하여 서버 파일 시스템에서 파일을 읽고 씁니다. 따라서 기본적으로 사용은 슈퍼 사용자로 제한됩니다. 대조적으로, 클라이언트 측면 가져 오기 및 내보내기 기능은 클라이언트 프로그램의 권한을 사용하여 클라이언트의 파일 시스템에서 파일을 읽고 씁니다. 클라이언트 측 기능에는 문제의 큰 개체를 읽거나 쓸 수있는 권한을 제외하고는 데이터베이스 권한이 필요하지 않습니다.

주의

가능합니다grant서버 측 사용lo_importandlo_export비 슈퍼 러에 대한 기능이지만 보안 영향에 대한 신중한 고려가 필요합니다. 이러한 권한을 악의적 인 사용자는 쉽게 슈퍼업자가되도록 쉽게 파일을 구매할 수 있으며 (예 : 서버 구성 파일을 다시 작성하여) 데이터베이스 슈퍼 사용자 권한을 얻기 위해 귀찮게하지 않고 서버 파일 시스템의 나머지 부분을 공격 할 수 있습니다..그러한 특권을 가진 역할에 대한 액세스는 슈퍼업자 역할에 대한 액세스만큼 신중하게 보호되어야합니다.그럼에도 불구하고 서버 측 사용하는 경우lo_import또는lo_export일부 일상적인 작업에 필요합니다. 우발적 인 오류로 인한 손상의 위험을 줄이는 데 도움이되므로 전체 슈퍼업자 권한이있는 것보다 그러한 권한을 가진 역할을 사용하는 것이 더 안전합니다.

의 토토성lo_readandlo_write서버 측 호출을 통해도 사용할 수 있지만 서버 측 기능의 이름은 밑줄이 포함되지 않는다는 점에서 클라이언트 측 인터페이스와 다릅니다. 이 기능을라고 부릅니다.LoreadandLowrite.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면