Безопасно ли е да изтриете 3 бази данни по подразбиране, създадени по време на инсталация на PostgreSQL?

Инсталирах инсталация по подразбиране на PostgreSQL 8.4 на Windows 2003 Server, използвайки предоставения инсталатор с едно щракване. Изпълнявайки psql -l за първи път, забелязах, че има три бази данни, инсталирани по подразбиране: postgres, template0 и template1< /em>.

Имайки предвид сигурността, първоначалната ми реакция е да изтрия или променя конфигурациите по подразбиране. Но също така знам, че нямам представа относно базите данни (тъй като тази инсталация е първата ми стъпка в самообучението за бази данни), така че реших да попитам първо.

Безопасно ли е да ги изтриете?


person romandas    schedule 16.07.2009    source източник


Отговори (2)


Принципно – не.

postgres базата данни е тук като база данни без шаблон с разумна гаранция, че съществува - така че всеки скрипт, който не знае къде да се свърже, може да се свърже там.

ако премахнете template1 - ще загубите възможността да създавате нови бази данни (поне лесно).

template0 е там като резервно копие, в случай че вашият template1 се повреди.

Въпреки че теоретично мога да си представя работеща база данни без шаблон* и бази данни на postgres, това, което ме притеснява е, че нямам представа какво (от гледна точка на сигурността) искате да постигнете, като ги премахнете.

person Community    schedule 16.07.2009
comment
Не е непременно желание да ги премахнете, ако са необходими -- често неща (не непременно Postgres) са инсталирани по подразбиране, които са ненужни и несигурни, като много от услугите, активирани по подразбиране в Windows XP например. Или по-стари инсталации на MS SQL с празни пароли „sa“. Исках да знам дали 3-те, инсталирани по подразбиране, са необходими -- изглежда, че е необходимо да имаш поне template1, а template0 е хубаво да имаш като резервно копие, но този postgres изглежда е излишен. Дали това е правилно? - person romandas; 17.07.2009
comment
Ако никоя от вашите програми не предполага съществуването на postgres база данни - можете да я премахнете. Не бих премахнал шаблон[01] поради много причини. Но отново - не бих си направил труда да премахна базата данни на postgres. Каква е ползата от това за вас (отстраняването)? Какъв вектор на атака ще бъде невъзможен без тази база данни? - person ; 17.07.2009
comment
Въпросът трябва да бъде „Каква оперативна необходимост изисква запазването на адреса на базата данни на postgres?“ Ако няма такъв, не трябва да го имате. Минимизиране, минимизиране, минимизиране. Това, че не мога да се сетя за атака срещу него, не означава, че няма такова; в края на краищата, правя тази инсталация специално, за да се науча, тъй като съм напълно неопитен с бази данни. - person romandas; 18.07.2009
comment
Ако някой се чуди какво може да се обърка, ако изтриете базата данни postgres: когато опитах командата deleteuser получих това съобщение за грешка: dropuser: could not connect to database postgres: FATAL: database "postgres" does not exist. Работи, след като пресъздадох празна postgres база данни, но очевидно се използва за нещо. - person Max; 24.11.2011
comment
Командите за добавяне/пускане на командния ред са удобни функции, които обгръщат [CREATE|DROP] [USER|DATABASE|LANGUAGE] sql команди. Ако имате който и да е db, към който да се свържете като db суперпотребител, можете да подадете съответните команди - person reedstrm; 26.03.2013

Можете да изтриете postgre, но не докосвайте template0 или template1. Базата данни на postgres е там за удобство.

person Community    schedule 17.07.2009