LINUX.ORG.RU

безопасность в PostgreSQL


0

0

ух, проблема следующая:

если в MySQL можно без проблем сказать:
CREATE DATABASE some_base
GRANT USAGE ON some_base.* TO some_user@% IDENTIFIED BY some_passwd

и не будет проблем при попытке подключения с some_base другого пользователя кроме как some_user, то в PostgreSQL все наоборот (тут не помешают пару матов). Сколько манов читал, вот все что выгреб из них (postgresql-docs-8.0.3.tar.bz2):

создаю двоих пользователей:
CREATE USER aaa_user WITH NOCREATEDB NOCREATEUSER ENCRYPTED PASSWORD 'aaa';
CREATE USER bbb_user WITH NOCREATEDB NOCREATEUSER ENCRYPTED PASSWORD 'bbb';

создаю 2 базы:
CREATE DATABASE aaa OWNER aaa_user;
CREATE DATABASE bbb OWNER bbb_user;

сбрасываю привилегии:
REVOKE ALL ON DATABASE aaa FROM PUBLIC CASCADE;
REVOKE ALL ON DATABASE bbb FROM PUBLIC CASCADE;

потом:
|-<^> psql bbb aaa_user
Password:
Welcome to psql 8.0.3, the PostgreSQL interactive terminal.
bbb=> \l+
List of databases
Name | Owner | Encoding | Description
-----------+----------------+-----------+---------------------------
aaa | aaa_user | SQL_ASCII |
bbb | bbb_user | SQL_ASCII |
template0 | postgres | SQL_ASCII |
template1 | postgres | SQL_ASCII | Default template database
(4 rows)

bbb=> \du
List of users
User name | User ID | Attributes | Groups
----------------+---------+----------------------------+--------
aaa_user | 102 | |
bbb_user | 103 | |
postgres | 1 | superuser, create database |
(3 rows)

bbb=> \z
Access privileges for database "bbb"
Schema | Name | Type | Access privileges
--------+------+------+-------------------
(0 rows)

далее, как в фильме: aaa_user сможет делать все что угодно в базе 'bbb'

я начал думать, что разработчики PostgreSQL вообще не придумали никаких средств защиты базы от других пользователей (особенно мне нравится рабочая команда \l+)...

гуглил инет долго, решил сюда прийти.
может кто-нибудь админил эту субд ?
спасибо.


читай доки на предмет pg_hba.conf

anonymous
()

В базе юзер может колбасить все что угодно, создавать и удалять, свое конечно. Можно ограничивать его права только на подключение к базе, как было уже указано. А права присваивать лучше либо через конкретные обьекты, либо через схемы.

SatanClaus ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.