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 6245 게시물 읽기
No. 6245
[왕초보] 유저생성과 DB생성
작성자
김종섭(winglet)
작성일
2005-08-03 17:12ⓒ
2005-08-03 18:31ⓜ
조회수
3,549

안녕하세요 ^^ pgsql 입문자입니다.

게시판 검색하다가 user와 db생성을 보고 따라하는데...

 

# 쉘에서 psql 관리자id로 실행
$ psql -U postgres mydb2

-- 데이터베이스 만들고
mydb2=# create database mydb3;
CREATE DATABASE

-- 두명의 사용자를 만들고
mydb2=# create user user1;
CREATE USER
mydb2=# create user user2;
CREATE USER

-- 새로 만들었는 DB에 접속해서
mydb2=# \c mydb3
"mydb3" 데이터베이스로 접속했습니다.

-- 각각의 스키마를 각각의 사용자 권한으로 만들고
mydb3=# create schema user1 authorization user1;
CREATE SCHEMA
mydb3=# create schema user2 authorization user2;
CREATE SCHEMA

-- 첫번째 일반 사용자로 다시 접속해서
mydb3=# \c mydb3 user1
"mydb3" 데이터베이스에 "user1" 사용자로 접속했습니다.
이부분에서 막힙니다.FATAL:IDENT authentication failed for user"user1" 
Previous connection kept 이라고 나오네요..
-- 테이블을 하나 만들고
mydb3=> create table t (a text);
CREATE TABLE

-- 두번째 일반 사용자로 접속해서
mydb3=> \c mydb3 user2
"mydb3" 데이터베이스에 "user2" 사용자로 접속했습니다.

-- 똑같이 같은 데이터베이스에 같은 테이블을 만들고
mydb3=> create table t (a text);
CREATE TABLE
mydb3=> insert into t values ('asdf');
INSERT 0 1

-- 이번에는 user1 스키마에 있는 t 테이블을 조회하면, 접근권한 오류발생함
mydb3=> select * from user1.t;
ERROR:  user1 스키마(schema)의 접근권한이 없음

-- 그래서 다시 사용자 바꾸고
mydb3=> \c mydb3 user1
"mydb3" 데이터베이스에 "user1" 사용자로 접속했습니다.

-- 조회를 해보면, user2에서 넣었으니, 여긴 없죠.
mydb3=> select * from t;
 a
---
(0건 있음)

 

또.. 현재 생성되어 있는 db들과 user들을 보려면 어떻게 해야되나요???

 

그리고.. 전에는 잘 되었는데 template1으로 접속한 상태에서 \dt하면 에러(relateion "pg_catalog.pg_user" does not exist)가 나면서 테이블이 보이지 않습니다.
)

 

아무것도 모르는 상태에서 시작하려니 많이 헤메네요^^;; 선배님들의 답변 기다리겠습니다!!


이 글에 대한 댓글이 총 2건 있습니다.

마지막, pg_catalog.pg_user 없다는 이야기는 psql 프로그램의 버전과, db 서버 버전이 맞지 않아서 발생하는 것 같고요, 서버 버전 확인해서 같은 버전의 psql 프로그램을 쓰면 해결날 듯싶고요,

 

user1 로그인 실패는 psql 프로그램 시작 자체를

psql -U user1 mydb3

해서도 안된다면,

두가지인듯한데요,

 

하나는 pg_hba.conf 설정에서 막아두었는 경우이고,

다른 하나는 autocommit이 off 되어있어, commit 없이 사용자를 바꾸려고 했으니, 실제로 사용자가 없는 경우이고...

 

데이터베이스를 보는 명령어는 \l 이고, 사용자 보는 명령은 select * from pg_user 입니다.

 

김상기(ioseph)님이 2005-08-04 11:22에 작성한 댓글입니다.

자문자답;;

처음 DB초기화시 SELINUX땜에 information schema 도중 실패난것땜에 그런가보네요...

 

죽이고 다시 초기화 하고 다시 살리고 나니 \dt 라던가 pg_user라던가 모두 되네요 ^^

김종섭(winglet)님이 2005-08-05 10:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
62498.0 인스톨 하는데서 질문입니다...
초보
2005-08-05
2021
6248현재 SQL Server의 접속 현황... [2]
이현순
2005-08-05
2548
6247PostgreSQL 디비를 이용해서 [3]
초보
2005-08-04
2895
6245[왕초보] 유저생성과 DB생성 [2]
김종섭
2005-08-03
3549
6243PostgreSQL의 ODBC Driver의 오류..
이현순
2005-08-02
2296
6242세개 테이블을 left join 걸려면.. 어떻게 하나요? [2]
박기원
2005-08-02
2647
6240학사관리에서.. 대체과목 지정하는거 설계를 어떻게 해야하나요? [4]
박기원
2005-08-01
2085
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다