golang - 使用用户时无法创建用户密码连接到postgresql

时间:2015-09-23 03:57:57

标签: postgresql go

我正在尝试使用Go Web Programming一书中的Chitchat go app。原始版本有效。当我使用用户&密码访问postgresql,它可以连接到db但无法创建新用户,如下所示:

func db() (database *sql.DB) {
    database, err := sql.Open("postgres", "dbname=chitchat user=tom password=tomahawk sslmode=disable")
    if err != nil {
        log.Fatal(err)
        fmt.Println("Db connection failed")
    }
    return
}

以下是Github上的完整代码。

但是,我找到了一个临时解决方案,但它需要授予对chitchat数据库中所有序列的访问权限。即使在我申请了

之后
GRANT ALL PRIVILEGES ON DATABASE chitchat to tom;

它仍然需要对每个表序列进行手动授权。以下是采取的步骤:

1)授予对数据库的访问权限

GRANT all privileges on database chitchat to tom;

2)列出闲聊数据库中的所有序列

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';

3)授予对每个人的访问权限

GRANT all privileges on sequence users_id_seq to tom;
GRANT all privileges on sequence threads_id_seq to tom;
GRANT all privileges on sequence posts_id_seq to tom;
GRANT all privileges on sequence sessions_id_seq to tom;

有更好的方法吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

只有超级用户才能在您的postgress数据库中创建用户。所以这样做..

<% @product.images.each do |image| %> <%= image_tag(image.url) %> <% end %>