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 5111 게시물 읽기
No. 5111
[질문] 현재 로그인한 User 의 그룹을 알고싶을때..
작성자
psql좋다
작성일
2003-12-22 12:14
조회수
1,439

pg_user 와 pg_group 테이블을 사용할수 있다면 좋겠지만,

일반 유저들은 저 테이블을 읽지 못할지도 모르잖아요?

그럴경우, 일반 유저일지라도, 이 유저가 속한 그룹들을

뽑아줄 수 있는 쿼리가 있을까요?

 

정 안된다면, 일반 유저들이라도, 읽기권한으로 저 두

테이블을 읽어서, 그룹이름을 받아오려는데, pg_group.grolist

컬럼이 { } 로 둘러쌓여진것이 일반 value 는 아닌가봅니다.

( 클래스인가요? )  어떻게 해야할지..

 

부탁드립니다..  감사.. 꾸뻑.

 

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

pg_group 테이블은 DBA에게는 읽기/쓰기, 나머지 사용자에게는 읽기전용으로 열려있습니다. 그러니, 일반 사용자일지라도 쿼리를 사용하면 알아 낼 수는 있을 것 같네요.

 

7.4 버전을 사용하고 계신다면,

 

mydb=> select groname from pg_group 
where 
(select usesysid from pg_user where usename = user) = any (grolist);
 groname
---------
 intra
(1 row)
Time: 2.808 ms

 

이런식으로 풀면 될터이고,

그 이하 버전이라면,

배열 관련 함수들을 contrib 에서 설치하셔서 사용하셔야 쉽게 찾을 수 있을 것같네요.

{} 로 표현되는 자료형은 배열인데,

배열관련 자료형에 대해서는 이야기가 너무 길어서 이곳에서는 언급하지 않겠습니다.

열심히 한번 공부해보세요.

 

김상기(ioseph)님이 2003-12-22 14:13에 작성한 댓글입니다.

감사합니다.

해결했습니다.  말씀하신대로, pg_user 와 pg_group 테이블은 디폴트로 읽기권한으로 열려있었습니다.  물론, 이 권한들도 취소할수 있게 되어있었고요..  그리고, 쿼리 감사합니다.   any() 펑션이 도움이 많이 되었네요.

 

2년전에 MySQL 과 PostgreSQL 을 선택할 기회가 있었는데, 그때 PostgreSQL 을 선택했었더라면.. 하는 생각을 무릇무릇 많이 들게 합니다.  정말 좋은 디비네요.

 

그럼 이만.

 

pgsql좋다.님이 2003-12-23 01:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5114index 의 차이? [1]
초보
2003-12-23
1744
5113full text index 와 intersect [5]
초보
2003-12-23
2342
5112웹에서 대용량 데이터 처리.. [1]
이상호
2003-12-23
1895
5111[질문] 현재 로그인한 User 의 그룹을 알고싶을때.. [2]
psql좋다
2003-12-22
1439
5110COPY는 되는데 \copy는 안됩니다!!! [2]
시나브로
2003-12-22
1980
5109점찍기 넘 어려워요 ㅠ.ㅠ [1]
초보
2003-12-21
1495
5108PostgreSQL용 게시판.. [2]
이훈우
2003-12-21
1454
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다