Postgresql
刪除或更改 postgres 數據庫帳戶的使用者名有什麼後果?
我有信心了解數據庫級別所涉及的內容:
- 如果刪除,我需要為每個系統管理員創建使用者,給他們
SUPERUSER
,然後刪除postgres
使用者。- 如果更改名稱,我需要更改
postgres
帳戶。不過,我的問題是我不確定這一行動的後果是什麼。例如,從 Linux
postgres
使用者的角度來看,這意味著什麼?當 I 時su - postgres
,我可以執行psql
並且可以連接到數據庫。我假設如果 postgres DB 使用者消失了,該功能就會消失。此外,數據庫是使用
postgres
linux 使用者啟動的。如果我刪除了postgres
會導致數據庫無法啟動的使用者,是否存在一些問題?來自ps:
/usr/pgsql-9.3/bin/postgres -D /var/lib/pgsql/9.3/data PG_GRANDPARENT_PID=1 USER=postgres PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin PWD=/ PGLOCALEDIR=/usr/pgsql-9.3/share/locale LANG=en_US.UTF-8 PGSYSCONFDIR=/etc/sysconfig/pgsql SHLVL=1 HOME=/var/lib/pgsql LOGNAME=postgres PGDATA=/var/lib/pgsql/9.3/data _=/usr/pgsql-9.3/bin/postgres
我在 Cent OS 7 上執行 PosrgreSQL 9.3。
Linux使用者與數據庫使用者
postgres
完全不同。postgres
它是通過 rpm 包創建的。當您以系統postgres
使用者身份登錄時,它假定您要連接的數據庫使用者和數據庫名稱與您嘗試連接的作業系統使用者相同。這就是為什麼一個簡單的 psql 可以工作,並以postgres
使用者和database
.該
postgres
數據庫只是template1
. 您可以刪除它或重新創建它,但問題很少。但是,您將無法刪除該postgres
使用者,因為數據庫系統需要它。user1@[local]:5432:user1:=# DROP ROLE postgres; ERROR: cannot drop role postgres because it is required by the database system Time: 50.570 ms user1@[local]:5432:user1:=#
但是,您可以通過設置所有用於 的連接來
reject
阻止postgres
使用者的登錄,這將阻止使用者使用該特定使用者而不是分配給他們的使用者進行登錄。