0%

Postgresql 新建数据库

这篇日志主要记录为应用在 Postgresql 创建用户、对应数据库并赋予必要的权限。

1. 进入 PostgreSQL 命令行界面

使用 psql 工具连接到 PostgreSQL 数据库。

sudo -u postgres psql

# 如果是运行在 Docker 容器中
docker exec -it postgresql psql -U postgres

2. 创建数据库

使用以下命令创建一个新的数据库(假设数据库名为 mydb):

CREATE DATABASE mydb;

3. 创建用户并设置密码

创建一个新的用户(假设用户名为 myuser,密码为 mypassword):

CREATE USER myuser WITH PASSWORD 'mypassword';

4. 授权用户访问数据库

授予该用户对新创建的数据库的所有权限:

GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

然后,切换到 nextcloud_db 数据库并为 public schema 授予权限:

\c nextcloud_db
GRANT ALL PRIVILEGES ON SCHEMA public TO nextcloud_user;

此外,确保用户可以在 public schema 中创建表:

ALTER SCHEMA public OWNER TO nextcloud_user;

5. 取消其他用户的访问权限

为了取消其他用户对该数据库的访问权限,你可以撤销默认的 public 模式的访问权限:

REVOKE ALL ON DATABASE mydb FROM PUBLIC;

此外,如果需要,你还可以从现有的其他特定用户那里撤销访问权限:

REVOKE ALL PRIVILEGES ON DATABASE mydb FROM otheruser;

6. 退出 PostgreSQL

完成配置后,可以退出 PostgreSQL 命令行界面:

\q