ALTER SERVER

ALTER SERVER

ALTER SERVER는 외부 서버(foreign server)의 정의를 바꾸는 명령이에요. 서버 버전 문자열, 일반 옵션, 소유자, 이름을 변경할 수 있어요.

출처: PostgreSQL 문서

본문

문법 (Synopsis)

ALTER SERVER name [ VERSION 'new_version' ]
    [ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) ]
ALTER SERVER name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER SERVER name RENAME TO new_name

설명 (Description)

ALTER SERVER는 외부 서버의 정의를 변경해요. 첫 번째 형태는 서버 버전 문자열이나 서버의 일반 옵션을 변경해요 (최소한 하나의 절은 필요해요). 두 번째 형태는 서버의 소유자를 변경해요.

서버를 변경하려면 서버의 소유자여야 해요. 소유자를 변경하려면 추가로 새 소유 역할로 SET ROLE 할 수 있어야 하고, 서버의 외부 데이터 래퍼(foreign-data wrapper)에 대한 USAGE 권한도 있어야 해요. (슈퍼유저는 이런 기준을 모두 자동으로 충족한다는 점에 유의하세요.)

파라미터 (Parameters)

name — 기존 서버의 이름이에요.

new_version — 새 서버 버전이에요.

OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) — 서버에 대한 옵션을 변경해요. ADD, SET, DROP은 수행할 동작을 지정해요. 작업을 명시적으로 지정하지 않으면 ADD로 간주돼요. 옵션 이름은 고유해야 하며, 이름과 값은 서버의 외부 데이터 래퍼 라이브러리를 사용해 검증되기도 해요.

new_owner — 외부 서버의 새 소유자 사용자 이름이에요.

new_name — 외부 서버의 새 이름이에요.

예제 (Examples)

서버 foo를 변경하고 연결 옵션을 추가하려면:

ALTER SERVER foo OPTIONS (host 'foo', dbname 'foodb');

서버 foo를 변경하고, 버전과 host 옵션을 바꾸려면:

ALTER SERVER foo VERSION '8.4' OPTIONS (SET host 'baz');

호환성 (Compatibility)

ALTER SERVER는 ISO/IEC 9075-9 (SQL/MED)를 따르지 않아요. OWNER TORENAME 형태는 PostgreSQL 확장 기능이에요.

더 알아보기 (Learn more)

  • 서버를 변경하려면 서버의 소유자여야 하고, 소유자 변경 시에는 새 소유자 역할로 SET ROLE 할 수 있어야 해요.
  • OPTIONS에서 특정 동작을 지정하지 않으면 ADD로 가정돼요.
  • 옵션 이름·값은 외부 데이터 래퍼 라이브러리로 검증돼요.