Если пользователь не существует его нужно добавить:
CREATE USER usrname WITH PASSWORD 'PaSsWoRd';
редактируем файл /var/lib/pgsql/data/postgresql.conf
Задаем параметр
listen_addresses = '*'
далее добавляем в конец файла /var/lib/pgsql/data/pg_hba.conf
# [название базы] [имя юзера] [сеть откуда можно конектиться]
host dbname usrname 0.0.0.0/0 md5
понедельник, 28 марта 2011 г.
пятница, 25 марта 2011 г.
read only доступ к PostgreSQL
#psql -U postgres -t -c "create role user_ro password 'PaSs' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;"
#psql -U postgres -qAt -c "select 'grant select on ' || tablename || ' to \"user_ro\";' from pg_tables where schemaname = 'public'" mydb | psql mydb
Теперь может точно убедиться все ли нормально сработало.
Выбираем таблицу и пробуем изменить данные в ней, выполняем sql-скрипт:
UPDATE tablename SET username='codegeist333' WHERE id=10000;
Если все номрально то увидим ошибку ERROR: permission denied for relation tablename
#psql -U postgres -qAt -c "select 'grant select on ' || tablename || ' to \"user_ro\";' from pg_tables where schemaname = 'public'" mydb | psql mydb
Теперь может точно убедиться все ли нормально сработало.
Выбираем таблицу и пробуем изменить данные в ней, выполняем sql-скрипт:
UPDATE tablename SET username='codegeist333' WHERE id=10000;
Если все номрально то увидим ошибку ERROR: permission denied for relation tablename
понедельник, 21 марта 2011 г.
yafc - configure: error: C++ preprocessor "/lib/cpp" fails sanity check
Пытался установить yafc, при ./configure получил вот такую ошибку
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
Решение для Centos:
#yum install gcc-c++
Для Debian:
#apt-get install g++
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
Решение для Centos:
#yum install gcc-c++
Для Debian:
#apt-get install g++
среда, 16 марта 2011 г.
Удалить все таблицы из базы данных - PostreSQL
Создаем скрипт droptables.bash
#!/bin/bash psql -t -d $1 -c "SELECT 'DROP TABLE ' || n.nspname || '.' || \ c.relname || ' CASCADE;' FROM pg_catalog.pg_class AS c LEFT JOIN \ pg_catalog.pg_namespace AS n ON n.oid = c.relnamespace WHERE relkind = \ 'r' AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND \ pg_catalog.pg_table_is_visible(c.oid)" > /tmp/droptables psql -d $1 -f /tmp/droptables rm -f /tmp/droptables
запускаем и в параметре указываем название базы, из которой будут удалены все таблицы
#su postgres
#./droptables.bash db_name
вторник, 15 марта 2011 г.
Автоматизация sFTP c помощью expect
Появилась задача по расписанию бекапить некоторый файлы на sftp.
Вот скрипт который наваял для этого.
Из конмдной строки выполняем:
#./sftp-backup /root/file.tgz
Вот скрипт который наваял для этого.
#!/usr/bin/expect set timeout -1 set HOST "1.1.1.1" set PORT "22" set USER "user" set PASS "PsAsSwOrD" set FILENAME [lindex $argv 0] spawn sftp -o "BatchMode no" -oport=$PORT $USER@$HOST:/folder/ expect "password:" { send "$PASS\r" } expect "sftp> " { send "put $FILENAME\r" } interact
Из конмдной строки выполняем:
#./sftp-backup /root/file.tgz
понедельник, 14 марта 2011 г.
Подписаться на:
Сообщения (Atom)