안녕하세요 ^^ 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)가
나면서 테이블이 보이지 않습니다.
)
아무것도 모르는 상태에서 시작하려니 많이 헤메네요^^;; 선배님들의
답변 기다리겠습니다!!
|