コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

ああ、そうね、システムカタログね。(アフォ)

データベースの権限。

test=> SELECT datname,usename,datacl
test-> FROM pg_database,pg_user
test-> WHERE usesysid=datdba;
  datname  |  usename  |                           datacl                       
                                                                                                                                                                      • -
test | testadmin | {testadmin=C*T*/testadmin,"group testadmins=CT/testadmin"} template1 | postgres | {postgres=C*T*/postgres} template0 | postgres | {postgres=C*T*/postgres} (3 rows)

と。
スキーマの権限。

test=> SELECT nspname,usename,nspacl
test-> FROM pg_namespace,pg_user
test-> WHERE usesysid=nspowner;
      nspname       |  usename  |                           nspacl              
                                                                                                                                                                                        • -
pg_toast | postgres | pg_temp_1 | postgres | pg_catalog | postgres | {postgres=U*C*/postgres,=U/postgres} public | postgres | {postgres=U*C*/postgres,=UC/postgres} information_schema | postgres | {postgres=U*C*/postgres,=U/postgres} testschema | testadmin | {testadmin=U*C*/testadmin,"group testadmins=UC/testadmin"} (6 rows)

テーブルの権限。

test=> SELECT relname,nspname,usename,relacl
test-> FROM pg_namespace,pg_class,pg_user
test-> WHERE pg_namespace.nspname='testschema' AND relnamespace=pg_namespace.oid AND usesysid=relowner;
  relname  |  nspname   |  usename  |                                                    relacl
                                                                                                                                                                                                                                                                                                    • -
seq_id | testschema | testadmin | testtable | testschema | testadmin | {testadmin=a*r*w*d*R*x*t*/testadmin,"group testdevs=arwdRxt/testadmin","group testadmins=arwdRxt/testadmin"} (2 rows)

テーブルはちょっと長いかな。それぞれVIEWを作っておいてもいいかも。