33.4. 서버측 스포츠 토토 베트맨#

SQL에서 큰 개체를 조작하기 위해 맞춤화된 서버측 스포츠 토토 베트맨은 다음에 나열되어 있습니다.표 33.1.

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

스포츠 토토 베트맨

설명

lo_from_bytea ( 로이드 oid, 데이터 바이테아 ) → oid

대형 개체를 생성하고 저장합니다.데이터그 안에. 만일로이드가 0이면 시스템은 사용 가능한 OID를 선택합니다. 그렇지 않으면 해당 OID가 사용됩니다(일부 대형 개체에 이미 해당 OID가 있는 경우 오류가 발생함). 성공하면 대형 객체의 OID가 반환됩니다.

lo_from_bytea(0, '\xffffff00')24528

lo_put ( 로이드 oid, 오프셋 비긴트, 데이터 바이테아 ) → 무효

쓰기데이터대형 개체 내의 지정된 오프셋에서 시작합니다. 필요한 경우 큰 개체가 확대됩니다.

lo_put(24528, 1, '\xaa')

lo_get ( 로이드 oid [, 오프셋 비긴트, 길이 정수 ] ) → 바이테아

대형 개체의 내용 또는 그 하위 문자열을 추출합니다.

lo_get(24528, 0, 3)\xffaaff


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

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

SELECT lo_creat(-1);       -- 새로운 빈 대형 객체의 OID를 반환합니다.

SELECT lo_create(43213);   -- OID 43213을 사용하여 대형 개체를 생성하려고 시도합니다.

SELECT lo_unlink(173454);  -- OID가 173454인 대형 객체를 삭제합니다.

INSERT INTO 이미지(이름, 래스터)
    VALUES('아름다운 이미지', lo_import('/etc/motd'));

INSERT INTO 이미지(이름, 래스터) -- 위와 동일하지만 사용할 OID를 지정합니다.
    VALUES('아름다운 이미지', lo_import('/etc/motd', 68583));

SELECT lo_export(image.raster, '/tmp/motd') FROM 이미지
    WHERE 이름 = '아름다운 이미지';

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

주의

다음은 가능합니다그랜트서버측 사용lo_import그리고lo_export수퍼유저가 아닌 사용자에게도 작동하지만 보안에 미치는 영향을 신중하게 고려해야 합니다. 이러한 권한을 가진 악의적인 사용자는 이를 쉽게 슈퍼유저로 만들거나(예: 서버 구성 파일을 다시 작성하여) 데이터베이스 슈퍼유저 권한을 획득하지 않고도 서버의 나머지 파일 시스템을 공격할 수 있습니다.그러므로 이러한 권한을 가진 역할에 대한 액세스는 수퍼유저 역할에 대한 액세스만큼 조심스럽게 보호되어야 합니다.그럼에도 불구하고 서버측에서 사용하는 경우lo_import또는lo_export일부 일상적인 작업에 필요합니다. 전체 수퍼유저 권한이 있는 역할보다 이러한 권한이 있는 역할을 사용하는 것이 우발적인 오류로 인한 손상 위험을 줄이는 데 도움이 되므로 더 안전합니다.

스포츠 토토 베트맨lo_read그리고lo_write은(는) 서버측 호출을 통해서도 사용할 수 있지만 서버측 함수의 이름은 밑줄을 포함하지 않는다는 점에서 클라이언트측 인터페이스와 다릅니다. 이 함수를 다음과 같이 호출해야 합니다.읽어보세요그리고로우라이트.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 스포츠 토토 베트맨에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.