コンピュータクワガタ

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

DB

どこもかしこもただ。

DB

知らない間に、DB2も無償版が出ているそうです。 http://www-06.ibm.com/jp/press/20060201002.html ダウンロードはこちらが詳しい。 http://blogs.sqlpassj.org/yoneda/archive/2006/01/31/15969.aspx Oracleといい、DB2といい無償はありがたいことです。 …

ずっとやってても頭が冷えないので、運用周りの調査。

SSLについてずっと調査していても、頭が凝り固まるのでPostgreSQLの運用周りの調査をしてみる。 とりあえず、ログ。syslogに投げることは成功(本のとおりにやっただけだが)。 一応、投げたSQL文やその処理時間等もわかるようなのでとりあえず、いろいろロ…

WebアプリケーションからのSSLによるJDBC接続

Webアプリケーションから安全にDB接続できるようにSSL接続の調査をしていました。 3日ほどいろいろやってみましたが、うまくいきません。 psqlによるSSL接続は問題なくできるので、Javaの問題だとは思うのですが。 An I/O error has occured while flushing …

追加のみ可能なテーブル(参照も不可)

とある案件で、追加のみ可能で参照が不可能なテーブルができないかとふと思ったので、やってみました。 まず、テーブルの権限を確認。 testschema.testtableを以下の権限とする。 testdevs=a/testadmin 要するに、SELECT権限がなく、INSERTのみできる状態と…

スキーマの権限

スキーマの中身を参照するには、USAGE権限が必要と。

とりあえず、昨日の。

JDBCドライバからのアクセスでも文字化けはしてなかった。 http://d.hatena.ne.jp/kuwalab/20050808#1123504574

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

データベースの権限。 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 | …

OSがUTF-8の場合のPostgreSQLの円エンコーディング(確認)

とりあえず、postgresql.confの client_encoding = UTF-8 とすると、一応pgAdmin IIIでも文字化けしていなかった。 あとは、JDBCドライバ等からデータを取得して化けていなければ一応大丈夫かな。

OSがUTF-8の場合のPostgreSQLのエンコーディング(未確認)

EUC_JPはだめなのかな? --encoding UTF-8で帰ってからやってみよう。 psql上はまったく文字化けしないけれども、特定の文字(「・」等)が入力できなかったり、pgAdmin IIIで文字化けしていたりといろいろありんす。 いろいろ調べてたら、クライアントエン…

めんどくさくてもコメントは必須。

データベース、スキーマ、テーブル、列のすべてにコメントはつけましょう。 test=> COMMENT ON DATABASE test IS 'テスト用データベース'; COMMENT test=> COMMENT ON SCHEMA testschema IS 'テスト用スキーマ'; COMMENT test=> COMMENT ON TABLE testschema…

テーブルの権限

最後にテーブルの権限。これは数が多くて完全ではない感じ。 まずは、テスト用のテーブルを作る。 test=> CREATE TABLE testschema.testtable( test(> id integer, test(> name varchar(20) test(> ); CREATE TABLE お約束で、PUBLICの権限をはずす。 test=>…

スキーマの権限

次に、スキーマの権限について。 まずは、適当にスキーマを作成する。作成はデータベース管理者でいいかなと。 test=> CREATE SCHEMA testschema; CREATE SCHEMA まずは、デフォルト権限になるので、PUBLICに対する権限を取り除く。 test=> REVOKE ALL PRIVI…

データベースの権限。

スキーマを勝手に作られないようにデータベース管理者だけに権限を与えると。 まずは、デフォルト権限からPUBLICの権限をはずす。 template1=# REVOKE ALL PRIVILEGES ON DATABASE test FROM PUBLIC RESTRICT; REVOKE 権限をはずすと、今回は以下のような権…

パスワードの有効期限切れ。

パスワードを変えていないはずなのに、認証に失敗する。 psql: FATAL: Password authentication failed for user "testadmin" おかしいなあと思ってパスワードを変更してもうまくいかない。 と思っていたら、パスワードの有効期限が切れていました。 以下の…

データベースの権限も(7.4.6)

家の7.4.6でも権限チェック。 test=# REVOKE ALL PRIVILEGES ON DATABASE test FROM PUBLIC RESTRICT; REVOKE でデフォルト権限から変更すると、pgAdmin IIIで同様に確認できた。 いちいちpgAdminで見ないといけないのか? 出張から帰ってきたら調べよう。体…

データベースの権限も

データベースの権限もpgAdmin IIIで確認するとわかる。 ということは、きっとどこかに情報が保管されているはずだ。

SSL?、SSH?どっちだ。

http://www.postgresql.jp/document/pg721doc/admin/ssh-tunnels.html

確かに7.4.6では権限は出ない。

会社の8.0.3で\dn+を試したので、家の7.4.6で実験。 test=# \dn+ List of schemas Name | Owner - information_schema | postgres pg_catalog | postgres pg_temp_1 | postgres pg_toast | postgres public | postgres testschema | testadmin (6 rows) 確か…

権限がわかれば便利便利

testschema作成直後の権限。 testschema | testadmin | | 次に、PUBLICの権限をすべて剥奪する。 test=# REVOKE ALL PRIVILEGES ON SCHEMA testschema FROM PUBLIC RESTRICT; そうすると、デフォルトの権限ではなくなるので以下のようになる。 testschema | …

バックアップ

データベース単位でのバックアップは以下の通り。 通常権限の問題等が発生しないようにpostgresユーザで処理した方がよさそう。 pg_dump test -U postgres > test.backup ただのSQL文が吐き出されるので復元は自由に。 すべてのデータベースというか、ユーザ…

8.0からはスキーマの権限の詳細が。

http://osb.sra.co.jp/PostgreSQL/8.0/changes.html 8.0から\dn+でスキーマの権限と詳細が確認できるようになったそうです。 test=# \dn+ スキーマの一覧 名前 | 所有者 | アクセス権 | 説明 - information_schema | postgres | {postgres=UC/postgres,=U/po…

初期権限

8.0.3のマニュアルより オブジェクトの種類によって、初期のデフォルト権限としていくつかの権限がPUBLICに付与されていることがあります。デフォルトでは、テーブル、スキーマ、および、テーブル空間に関するPUBLICアクセス権限はなく、データベースのTEMP…

Windows版の8.0.3でも同様の気が

昨日の記述通り、Windows版でもALTER GROUPでユーザを割り当てないとpg_hba.conf通りに動いていません。

スキーマの権限の削除

すべてのユーザのスキーマのオブジェクトの作成権限の削除。 REVOKE ALL PRIVILEGES ON SCHEMA public FROM PUBLIC; このあとに、必要な権限を付与していく。 GRANT ALL PRIVILEGES ON SCHEMA public TO GROUP testadmins; 権限がないユーザだと、以下のよう…

バグのようです。

http://ml.postgresql.jp/pipermail/pgsql-jp/2005-January/018326.html つまり「最後に作成したグループ」でなくて、「IN GROUP 付きで作成したユー ザ」に対して、グループに対する別の操作があるまで、HBA 上はグループに追加 されたことにならないようで…

pg_hba.confも落ち着いてきた。

やはり、ユーザ名、グループ名に「_」(アンダーバー)を使うのはよくないようで。 と書いている側からうまく動いていないし。 うーん。

わがっだ!やっぱりアフォーだった。

USER名や、GROUP名には「_」(アンダーバー)等の特殊文字は使用しないほうがいいそうだ。 思いっきり入っているよアンダーバー。 とおもったけど、微妙にうまく行かない。@ファイル名もだめだし。

クライアント認証

Windows版だとやっぱりうまくいかない。 バグなのか、設定ミスなのか。多分設定ミスだと思いますが。。 明日再挑戦で。

クライアント認証

CentOS 4.1上のPostgreSQL7.4.8では、以下の設定で正しく動く。 local test @test.user md5 @test.userの中に認証ユーザリストを記述する。グループでも動いた。 明日、会社のお昼休みにまた試そう。

DBAをクビにならないためのtips10

JPUG担当blogより DBAをクビにならないためのtips10だそうです。 納得いく内容です。