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 3733 게시물 읽기
No. 3733
상속에 대한 재미있는 사실...
작성자
김대성
작성일
2001-12-13 15:13
조회수
1,541

별 재미 없는 내용이 될지도 모르겠는데요.

 

2명의 User가 1 user당 1개의 세션으로 PostgreSQL에 접속합니다.

 

A Session의 1번 User는 testDB의 owner이자 테이블의 owner입니다.

 

TABLE은 M <= N

즉, N은 M을 상속받고 있습니다.

 

create table M(a text, b text, c text);

create table N(d text, e text) INHERITS(M);

 

1번 유저는

INSERT INTO N(a,b,c,d,e) VALUES('v','w','x','y','z');

N table에 값을 입력했습니다.

 

1번 유저가 B Session의 2번유저에게 select, update, insert, delete권한을

상속관계에 있는 M테이블에게 주었습니다.

 

1번 USER는 M테이블의 내용을 볼수 있을까요?

--> 없습니다. 최소 select 권한이라도 N테이블에 주어야 되더군요. 저장이야 N테이블에 되어 있을테니까요

 

 

장난기가 발동했습니다.

 

1번 User가 M테이블에 lock table을 하였습니다.

BEGIN;

LOCK M IN EXCLUSIVE MODE; <-- 다른유저는 select 만을 허용하겠다는겁니다.

 

이때 2번 USER는 쉽게 M 테이블의 내용을 변경할 수 있었습니다.

 

UPDATE N

SET a='xxx', b='yyy', c='zzz' <--- a,b,c는 M에서 계승받은 컬럼입니다

WHERE a='v' AND b='w' AND c='x';

--------------------------------------------------------------

UPDATED 1

 

트랜잭션을 종료시키고 1번유저가 테이블을 보니 놀랬습니다.

바뀌었으니까요

 

 

하지만

UPDATE M

SET a='xxx', b='yyy', c='zzz' <--- a,b,c는 M에서 계승받은 컬럼입니다

WHERE a='v' AND b='w' AND c='x';

----------------------------------------

하면 행상태에 놓이게 되더군요.

 

 

락거나마나 자신의 attribute도 쉽게 자식필드에서 바뀌어 지네요.

엄청 헤깔립니다.이거

 

a,b,c,d,e가 table N에 저장되어 있어서 그런걸까요?

[Top]
No.
제목
작성자
작성일
조회
3742APM설치, 사용도중에 Pgsql 설치하면... [1]
mong2
2001-12-17
1531
3741트리쿼리 [1]
써니
2001-12-17
1626
3738[왕왕초보]테이블에서
김영진
2001-12-15
1291
3739┕>Re: [왕왕초보]테이블에서
정재익
2001-12-15 20:15:58
1380
3733상속에 대한 재미있는 사실...
김대성
2001-12-13
1541
3734┕>Re: 상속에 대한 재미있는 사실...
김상기
2001-12-14 08:32:45
1545
3732상속때문에 문제 여쭙니다 [3]
김대성
2001-12-13
1482
3731pgsql에는 zerofill이 없나요? [1]
이은호
2001-12-13
1506
3729CREATE CONSTRAINT TRIGGER에 대한 질문입니다. [1]
소타
2001-12-12
1709
3730┕>넘 무성의한 코멘트같아 추가로 적습니당.. [1]
김대성
2001-12-13 00:15:40
1804
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다