도움이 되셨다니 다행입니다.
아시다시피 postgresql의 사용자계정은 시스템 계정과는 상관이 없이 독자적으로 운영이 됩니다. 하지만 일반적으로 이것을 동일하게 부여를 합니다. 혼선을 방지하기 위해서....
사용자를 생성을 할 경우, psql 에 들어가서 하는데, 다음은 관리자 메뉴얼에서 따온부분입니다. (대충.. 번역을 했습니다. ^_^;;;)
----------------------------------------------------------------------------
데이터베이스의 사용자는 몇몇개의 속성을 가지는데, 이는 사용자의 권한과 상호작용을 정의하는데 사용한다.
superuser의 권한을 가진 사용자
데이터베이스 superuser에 대해서는 모든 권한 검사를 생략한다. 또한 오직 superuser만이 새로운 사용자를 생성할 수 있다. superuser를 생성하는 방법은
CREATE USER name CREATEUSER
(name 은 사용자 이름)
database 생성 권한을 가진 사용자
사용자가 데이터베이스를 생성하려면 명확하게 권한을 주어져야한다. (superuser는 예외이다. 왜냐하면 superuser는 모든 권한 검사를 생각하기 때문이다.) 그러한 사용자를 생성하기 위해서는....
CREATE USER name CREATEDB
password를 필요로하는 사용자
password는 오직 사용자의 확인을 필요로할 경우 사용한다. 이의 password는 시스템 password와는 독립적인 것이다. 이러한 사용자를 생성을 할 경우...
CREATE USER name WITH PASSWORD 'string'
(string: 패스워드)
자세한 것은 reference page의 CREATE USER 와 ALTER USER 를 참고바란다.
------------------------------------------------------------------------------
라고 되어있습니다.
그리고 포스트그래스는 특정 사용자와 그룹에 select, update 와 같은 문장 자체에도 권한을 제한해줄 수 있는데 어느 유저는 select 만 쓸수 있고, update도 할 수 있고... 등입니다.
자세한 것은 아래의 내용을 참조하십시요...
http://postgresql.bteg.net/users-lounge/docs/7.1/admin/privileges.html
또하나 만일 다른 기계에서 원격으로 디비에 접근하고자 할 경우 이에 대한 권한을 설정을 합니다. 어떤 ip에서 오는 모든 유저는 패스워드를 검사할 필요하 없다, 또는 어떤 ip에서 오는 모든 유저는 접근을 금지시켜라 등등....
이것은 pg_hda.conf file에서 설정을 하는데, 주로 님과 같은 경우에는 웹서버가 디비 서버하고 독립되어 있는 경우, 그 웹서버에서 접근하는 유저를 접근 허용할 때 사용합니다. 말하자면 보안을 위한 목적이죠.
일반적으로 postmaster가 뜨면, 외부로 노출이 되는데, 이에 대한 외부에 대한 디비로의 접근 규정이라고 보면 될랑가요.....
하여간 다음의 글을 읽어보세요....
http://postgresql.bteg.net/users-lounge/docs/7.1/admin/client-authentication.html#EXAMPLE-PG-HBA.CONF
제가 지금 출근을 해야 되기 때문에 자세히 쓰지 못해 죄송합니다.
김일형.
:: 답변에 정말 감사 드립니다.
:: 저번에도 답변을 해 주시더니...정말 많은 도움이 됩니다.
:: 몇가지만 더 여쭈어 보겠습니다.
:: db server와 web server가 같은 장소에 있을 경우 그 서버의 ip를 써주면 안되나요?
:: 그리고 접근 권한이라고 하셨는 데 ..계정을 만들때 어떻게 해야 되는지
:: 좀 자세히 알려주시면 감사하겠습니다...
::
|