뭔가 근본적인 문제에 대한 이해가 부족하신 것같은데.
데이터 베이스에서의 사용자는 데이터베이스 그 자체에 대한 사용자입니다.
PostgreSQL 놈은 오라클에서처럼 막각한 사용자 기능 제한을 설정하질
못합니다. 하지만 그 개념은 여느 RDBMS와 같은 개념으로 이해하셔야합니다.
데이터베이스 관리자가 있고, 일반 사용자가 있고, 손님이 있고, ....
이런식으로 이것은 데이터베이스 그 자체의 사용자이지요.
한편, 이 데이터베이스를 사용하는 어떤 프로그램에서
사용자를 사용한다면, 그 사용자는 데이터베이스 사용자와 별개의
프로그램 사용자입니다.
예를 들어서, 회원제 게시판을 운영한다고 할때,
회원제 게시판을 사용하는 사용자들은 asdf, fdsa, qwer, vcxz, ....
이런식으로 있겠지요.
이때, 데이터베이스 사용자를 똑같이 위의 사용자들처럼 만드는 것이 아니라,
어차피 이 모든 사용자들은 그 테이블의 사용에 있어서는
동일한 사용자임으로 하나의 데이터베이스 사용자만 있으면 되겠지요.
경험상으로 웹 기반 프로그램이라면,
www (예를 들어서) 데이터베이스 사용자 하나면 충분합니다.
그리고 우리가 흔히 생각하는 웹사용자는 www 가 소유주인 웹사용자테이블을
만들어서 웹 프로그램이 그것을 관리하는 형태를 택합니다.
만일 사용자 인증이 필요하다면,
데이터베이스 사용자를 계속해서 만드는 것이 아니라,
그 프로그램에서 사용하는 사용자테이블을
참조해서 이루워지는 것이 일반적인 방법입니다.
즉, 실재 프로그래머, 또는 DBA 를 제외한 모든 사람은
데이터베이스에 직접 억세스할 기회를 주지 않는 것이 보안 측면에서도
안전합니다.
즉 모든 일반사용자들은 오직 그 데이터베이스를 억세스하는 프로그램을
통해서만 억세스를 해야겠지요.
이 글에 대한 원래질문에 대해서, 개념을 바꾸셔야(?) 할 부분이,
특별한 경우가 아니고서는 하나의 프로그램에서 다루는 모든 테이블은
반드시 테이블 소유주가 있어야하지요. 그리고 그 소유주는 단일한 것이
일반적인 모습일겝니다. 그렇지않다면, 프로그램을 수정해서라도,
디비 사용자를 새로 만들더라도 그렇게 하는 것이 바람직한 모습일겝니다.
(물론 특수한 상황이 있기도 합니다 ^.^)
데이터베이스 사용자에 대한 좀 더 깊이 있는 이해가 필요하시면,
오라클의 사용자 관리 부분에 대해서 살펴보세요.
좋은 지침서가 될 듯싶습니다.
|