Postgresql 中新增用户、数据库和授权

本文介绍如何快速在 PostgreSQL 中新建 DB 和用户并完成授权,简要如下,详细说明请看详情页。

TL;DR

1
2
3
4
sudo -u postgres psql
postgres=# create database mydb;
postgres=# create user myuser with encrypted password 'mypass';
postgres=# grant all privileges on database mydb to myuser;

PGSQL 非常好的一个是自带了 createusercreatedb 这样的一些二进制工具类,所以我们可以直接使用这些工具完成以上操作,而不用写 SQL。

Postres 的默认配置是自动创建一个 postgres 用户,该用户有完全的 superadmin 超管权限,可以管理系统中整个 PostgreSQL 实例。

1
$ sudo -u postgres psql

上面的命令可以以超管权限进入 psql 命令行交互界面。下面的命令中,<> 中间的是需要你自定义的内容(省略掉 <>)。

使用 Shell 操作

创建用户

script
1
$ sudo -u postgres createuser <username>

创建数据库

1
$ sudo -u postgres createdb <dbname>

给用户设置密码

1
2
$ sudo -u postgres psql
psql=# alter user <username> with encrypted password '<password>';

给用户授权数据库权限

1
psql=# grant all privileges on database <dbname> to <username> ;

完成以上操作既可使用新建的用户访问该新建的数据库了。

使用 psql 完成以上操作

你的系统里可能没有 createusercreatedb 命令,或者因为某种原因需要使用纯 psql 来完成。以下是实现这个功能的神奇命令:

1
2
3
CREATE DATABASE yourdbname;
CREATE USER youruser WITH ENCRYPTED PASSWORD 'yourpass';
GRANT ALL PRIVILEGES ON DATABASE yourdbname TO youruser;

本文内容翻译自:https://medium.com/coding-blocks/creating-user-database-and-adding-access-on-postgresql-8bfcd2f4a91e

作者

Jakes Lee

发布于

2019-09-13

更新于

2021-06-12

许可协议

评论