2016-09-18 12 views
0

私は、データベースに接続することができますそのデータベースのみを参照してデータベースを作成しようとしています。Postgresリストのデータベースのアクセス許可

_, err = db.Exec("CREATE DATABASE " + database.Name + " ENCODING 'utf8' LC_COLLATE 'en_US.UTF-8'") 
_, err = db.Exec("CREATE ROLE " + database.User + " WITH LOGIN PASSWORD '" + database.Password + "'") 
_, err = db.Exec("REVOKE ALL PRIVILEGES ON DATABASE " + database.Name + " FROM PUBLIC") 
_, err = db.Exec("GRANT ALL PRIVILEGES ON DATABASE " + database.Name + " TO " + database.User) 

を問題は、私の役割は、経由のpostgresに接続できることである:

大丈夫です
psql -U haruki -W -h localhost 

が、それはそれに対応する権限を持つすべてのデータベースを一覧表示することができ、私はそれについていった方法

たとえそれがそれらに接続できなくても。

可能な方法はありますかユーザーはすべてのデータベースを一覧表示できません?または、おそらく-dフラグを指定してログインできるようにしますか?

答えて

0

これをpgsqlで制限する方法はありません。 pg_catalogにはデータベースの名前が入っています。

これを行うには、使用する言語でカスタムレイヤーを追加するか、thisに従うか、postgresql設定を編集してDDLステートメントを使用します。

関連する問題