tacchiの中身(Ruby on Railsのシステム開発)
2008.05.27
カテゴリ:データベース - サーバー - 役立ちツール

postgresでのユーザ権限付与(psql, grant)

RSS

おはようございます。tacchiです。

今日は、postgresでの権限付与について、話したいと思います。
スキーマ単位で権限付与できず、テーブル毎に権限付与しなきゃならないので、テーブル数が増えている場合のDBにユーザ作成して権限付与するのが面倒になってきますよね。
テーブルリストを作成してそのリストに対して、同じgrant文を流すスクリプトを組んだので、良ければ使ってみて下さい。


## grant.sh
#!/bin/sh

DBNAME=${1:?"enter dbname"}
DB_USERNAME=${2:?"enter db username"}
CREATE_USERNAME=${3:?"enter create username"}
COMMAND=${4:?"enter select or 'select,update' or 'select,update,delete' ..."}

# --共通関数定義--
LIST=/tmp/table.lst

psql -U ${DB_USERNAME} -d ${DBNAME} -c "select relname from pg_class where relkind='r' and relnamespace=(select oid from pg_namespace where nspname='public' order by relpages desc);" -t -A > ${LIST}

# コマンド実行
while read line
do
echo psql -U ${DB_USERNAME} -d ${DBNAME} -c \"grant ${COMMAND} on $line to ${CREATE_USERNAME}\;\"
psql -U ${DB_USERNAME} -d ${DBNAME} -c "grant ${COMMAND} on $line to ${CREATE_USERNAME};"
done < ${LIST}

# listファイル削除
rm -f ${LIST}

exit 0

使い方


./grant.sh dbname db_username create_username 'select'
./grant.sh dbname db_username create_username 'select,update,delete'

う。。。 インデントが崩れてる。。。

ブックマークに追加する

.
web開発ならKBMJ
Rubyでのwebシステム開発は
実績豊富なKBMJにお任せ下さい
iPhone開発
iPhone開発は
KBMJにお任せ下さい
ファイル共有サービス DUB
クラウドファイル共有サービス「DUB」
オープンソースECパッケージ エレコマ
オープンソースECパッケージ
「エレコマ」

プロフィール

tacchi
tacchi
Ruby On Railsでバリバリ開発している会社に勤めてます。
新しい技術に興味もありますし、サーバにも興味ありますので
気になった事が合ったらジャンジャン書いて行きます!

最近チェックした記事

最新記事

アーカイブ

アクセスランキング

KBMJのWebソリューション
Ruby on railsの開発ならKBMJ
株式会社ケイビーエムジェイ