2017-02-16 1 views
0

나는이 간단한 쿼리의 출력에 문제가 있습니다 IDE에서이상한 출력

  1. 터미널
  2. 에서
  3. 통해 실행 psql의 : 그것을 다른 방법을 실행하는 동안

    select 
        pid, 
        state 
    from pg_stat_activity 
    where datname = 'My_DB_name' 
    

    을 bash 스크립트에서 :

1 : 12,341,

psql -h host -U user -d database -t -c "$QUERY" >> result 

1, 2 반환 결과는 내가 그들을 필요로

pid  state       
------ ----------------------------- 
23126 idle       
25573 active       
2642 active       
20420 idle       
23391 idle       
5339 idle       
7710 idle       
1558 idle       
12506 idle       
2862 active       
716  active       
9834 idle in transaction (aborted) 

2 :

pid |    state    
-------+------------------------------- 
23126 | idle 
25573 | idle 
    2642 | active 
20420 | idle 
23391 | idle 
    5339 | active 
    7710 | idle 
    1558 | idle 
12506 | idle 
    2211 | active 
    716 | active 
    9834 | idle in transaction (aborted) 

3 이상 - 그것은 나에게 어떤 상태를 제공 나던 '활성'을 제외한 이름

23126, 
25573, 
2642, 
20420, 
23391, 
5339, 
7710, 
1558, 
12506, 
1660,active 
716,active 
1927,active 
9834, 

내가 무엇이 누락 되었습니까? bash 스크립트를 통해 모든 주 이름을 얻는 방법?

+3

모든 사용자가 같은 사용자로 연결하고 있습니까? 'pg_stat_activity'는 일반 사용자보다 수퍼 유저에게 다른 출력을 보여줍니다. – jmelesky

+0

그래, 수퍼 유저가 아닌 사람으로 연결하는 것이 그 이유였다. 고맙습니다. – dreamca4er

+0

@jmelesky, 답변으로 의견을 게시 할 수 있습니까? 그래서 나는 그것을 정확하게 선택할 수있다. – dreamca4er

답변

0

pg_stat_activity은 슈퍼 유저로 로그인했는지, 권한이없는 사용자로 로그인했는지에 따라 다른 내용을 보여주는 카탈로그보기입니다.

# 1과 # 2에서 수퍼 유저로 로그인 한 것처럼 출력되지만 # 3에서 일반 사용자로 보입니다.