Всем привет. Возник такой у меня такой вопрос, каким образом можно сделать, так что когда подключаешся к серверу под ролью test, то можно было работать только с базой под именем test. И чтобы не было возможности что либо изменять или удалять в базе test2, postgres и есть ли возможность скрыть эти базы ?
P.S: Базу начал изучать совсем недавно, так что если спросил как то не так извиняйте.
Прекращаем изучать PostgreSQL
Прекращаем изучать PostgreSQL по сомнительным инструментам типа pgAdmin и начинаем читать мануал.
Создавайте базу не с владельцем test, убирайте лишние права и будет вам счастье
Пробовал делать вот так
Пробовал делать вот так вот:
CREATE ROLE user1 WITH NOSUPERUSER LOGIN PASSWORD '123' ;
CREATE DATABASE user1db WITH OWNER = user1;
GRANT ALL PRIVILEGES ON DATABASE user1db TO user1;
GRANT CONNECT ON DATABASE user1db TO user1;
Другие базы удалять не могу, создавать тоже. Но вот в других базах под user1 могу создавать таблицы, хотя не должен. Чего не доделал ?
Самое время почитать про
Самое время почитать про команду REVOKE
В БД по умолчанию есть схема PUBLIC, надо забрать права оттуда.
http://postgresql.ru.net/manual/ddl-schemas.html
откуда читаем:
Заметим, что по умолчанию, для схемы public привилегии CREATE и USAGE имеет любой пользователь. Это позволяет всем подключенным к базе данных пользователям, создавать объекты в схеме public. Если вы не хотите разрешать это, вы можете отобрать данную привилегию:
Огромнейшее спасибо, что
Огромнейшее спасибо, что подсказали. Буду дальше настраивать.