database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 5913 게시물 읽기
No. 5913
restore 권한 에러..
작성자
초짜(kmsds)
작성일
2005-02-21 10:18
조회수
2,831

PG-Admin에서 Restore를 했습니다.

### pg_restore.exe -i -h localhost -p 5432 -U postgres -d safedoor5 -v "C:\Documents and Settings\Administrator\바탕 화면\hanil.backup"

### 결과 ####

pg_restore: creating TABLE sellitem
pg_restore: [archiver (db)] Error from TOC entry 1295; 1259 17512 TABLE sellitem hicom
pg_restore: [archiver (db)] could not execute query: ERROR: user "hicom" does not exist
Command was: ALTER TABLE public.sellitem OWNER TO hicom;
pg_restore: creating TABLE sellsum
pg_restore: [archiver (db)] Error from TOC entry 1287; 1259 17447 TABLE sellsum hicom
pg_restore: [archiver (db)] could not execute query: ERROR: user "hicom" does not exist
Command was: ALTER TABLE public.sellsum OWNER TO hicom;

위와같은 에러가 납니다.

처음 백업한 데이터베이스는 A란 PC에서 hicom이란 사용자 권한으로 사용중인 데이터베이스였구요

복구하려는 데이터베이스는 B란 PC에서 새로운 환경으로 postgres의 권한으로 생성한

데이터베이스입니다. (생성시에는 Template0으로 빈 데이터베이스를 만들었구요.)

근데 위에처럼 에러가 나네요..

처음에 hicom이란 owner로 생성을 하여 사용하던 것이라 postgres owner로 된 곳에 복구를

하려니 에러가 나는것 같은데...

앞으로 생성하는 db는 hicom이 아닌 postgres의 권한으로 생성하려 합니다.

어떻게 하면 위의 에러를 처리할수 있을까요?

만약에 무시할수 있는 에러라면 그냥 사용해도 무관한건지요....

이런 경험하신분 답변 주시면 감사하겠습니다^^

이 글에 대한 댓글이 총 9건 있습니다.
이부분에서 cmd프롬프트상에서
pg_restore.exe -i -h localhost -p 5432 -U postgres -O -d safedoor5 -v "d:\hanil.backup"
와 같이 위에 "-O" 옵션을 붙였더니 에러가 나지 않네요
PG-Admin으로 들어가서 데이터베이스의 properties를 보니까
owner가 postgres로 되어 있네요.
그리고 에러또한 나지 않구요..
그렇다면 결국 위에 -O(No Owner)옵션을 추가함으로서
제가 하려는 의도대로 잘 된건가요?
-O옵션을 주면 기본적으로 owner가 postgres로 지정되게 하는
그런 옵션인건가요?
초짜(kmsds)님이 2005-02-21 10:30에 작성한 댓글입니다.
이 댓글은 2005-02-21 10:31에 마지막으로 수정되었습니다.

예, 의도된 대로 잘 되었는데요, :)

그 의도가 불안합니다.

 

언제나 늘 그렇듯이,

어떠한 서버든, 시스템이든 간에, 실무자에게는 슈퍼유저 권한을 주지 않는 것이 일반적입니다.

 

즉, 이곳 DSN DB를 예로 들어서,

db 서버의 슈퍼유저는 postgres 입니다.

하지만, 웹 프로그램이 db 서버로 접속하는 사용자는 다른 것입니다. 그리고, 그사용자는 일반 사용자, 데이터베이스를 만들지도 못하고, 사용자를 만들지도 못하고, C 모듈 함수를 생성하지도, 못하고, ... db server를 restart 하지도 못하고 ... 등등 서버 관리쪽의 권한이 없습니다.

 

즉, 윗  safedoor5 데이터베이스를 사용자는 실제 사용자가 hicom 이라면, 이 사용자를 일반 사용자로 만들어서 사용하는 것이 바람직합니다.

 

이게 불의의 사고를 미연에 방지하는 한 방책이거든요.

김상기(ioseph)님이 2005-02-21 11:01에 작성한 댓글입니다.

저.. 지금 현재 기존백업파일을 만들었던 데이터베이스의

owner가 hicom으로 되어 있는데요..

저걸 다른 owner로 바꾸려면 어떻게 해야 하죠?

 

초짜님이 2005-02-21 11:22에 작성한 댓글입니다. Edit

사용자 이름만 바꾸는 경우라면,

그냥 alter user oldname rename to newname;

명령으로 바꾸면 됩니다.

 

김상기(ioseph)님이 2005-02-21 12:03에 작성한 댓글입니다.

단순히 사용자만 바꾸는거 말구요.

위와 같이 restore를 할때 hicom 때문에

에러가 나는부분이요..

restore할때 에러가 안나게 하려면 어떻게 해야 하죠?

상기님 말대루 -O옵션을 주면 postgres계정으로 변경이

되기 때문에 보안에 취약하다 해서요....

초짜님이 2005-02-21 14:22에 작성한 댓글입니다. Edit

에러가 날 때 분명

ERROR: user "hicom" does not exist

이런 에러 메시지를 보셨으리라 생각됩니다.

 

리스토어 할 디비에 미리 hicom 계정을 만들어 두시면

에러가 나지 않을 듯 합니다.

 


 

김영호(icepage)님이 2005-02-21 15:05에 작성한 댓글입니다.

예, 제말은, 그렇게 미리 hicom 으로 만들어 두고,

restore 작업 끝에, 그 hicom user의 이름을 바꾸면 될 것 같네요.

(가장 손쉬운 방법)

김상기(ioseph)님이 2005-02-21 15:25에 작성한 댓글입니다.

죄송합니다.

벌써 몇번째 댓글인지..^^

 

제가 한번에 제대루 질문을 드려야하는건데..

 

제가 말씀드린 다른 owner라는건 기본 유저...

즉, postgres를 말씀드린거거든요..

 

그래서 이름 변경이 불가하고..

기존의 백업 파일의 테이블들이 모두 hicom owner에 포함되어 있어서

restore시에 에러가 나는건데...

모든 테이블의 owner를 postgres로 귀속시키려면 어케 해야 하나요?

 

restore에서 에러 없이 바로 postgres로 할수 있는 방법은 없나요?

 

만약에 없으면 그냥 hicom 유저 생성없이 restore를 해서

(에러가 나겠지만)

나중에 테이블 하나한 owner를 바꿔주는것도 상관이 없는건지요..

초짜님이 2005-02-21 17:54에 작성한 댓글입니다. Edit

다시 원점으로, pg_restore 명령에서 -O 옵션으로 소유주 문제를 무시해버리면 될 듯싶네요.

원래의 이야기였습니다.

 

문제는 이 원래 이야기의 문제가 저 pg_restore 명령을 실행할 수 있는 사용자라면, db 서버의 슈퍼유저인데, 이 슈퍼유저로는 실무 자료를 접근하고 조작한다는 것이 별로 바람직하지 않다고 말씀드릴것이였습니다.

 

김상기(ioseph)님이 2005-02-21 21:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
59166.3버젼 다운받을수 있는곳 아세요?? [1]
정연우
2005-02-21
1976
5915about PGCluster problem [4]
mitani
2005-02-21
2150
5914MySQL 에서 PostgreSQL 로 이동(Migration) [4]
주만호
2005-02-21
4297
5913restore 권한 에러.. [9]
초짜
2005-02-21
2831
5911PostgreSQL 8.0.1 과 odbc (psqlodbc-07_03_0200.zip) [2]
김이수
2005-02-20
3153
5910win2k postgresql8.0(space tag)설치후..? [4]
lib
2005-02-19
3636
5908[질문]7.3.X 버전대에서 namespace(schema) 별 백업방법?? [1]
가우나라
2005-02-18
2283
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.034초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다