2015-02-24 68 views
2

我最近创建了一个测试数据库,但我希望它可以被所有用户访问。PostgreSQL公开访问数据库

我创建的数据库用户postgres然后使用命令

GRANT ALL ON DATABASE dbname TO public; 

但是,当我退出,并尝试使用不同的用户我得到这个错误

psql -d dbname 
psql: FATAL: role "username" does not exist 

我不连接到它我不想为每个访问数据库的人创建一个用户,这是我想公开的原因。有没有我仍然失踪的许可?

回答

4

尽管可以访问所有人(public),但您连接的用户必须存在。 psql的默认值是系统帐户的用户名。当然,你可以的,创建一个密码的用户anonymous每个人都可以用它来连接:

psql -U anonymous dbname 
+0

或等值'PSQL DBNAME anonymous',+1 – Andomar 2015-02-24 10:21:14

+0

不在于打败授予数据库公共接入点,如果您必须成为用户才能连接到它,它并不是真正公开的 – Trent 2015-02-24 10:21:32

+1

在此上下文中的公有意思是“DBMS知道的每个用户” – ckruse 2015-02-24 10:30:53