Postgresql实践最小单元笔记

PG的知识和特性太多了浩如烟海。

这里记录一个使用的最小单元笔记

一、安装PG

参考正常安装流程

二、登录PG

2.1 指定用户登录

PG一般会默认新建一个超级用户 叫 postgres, 这个账户是一切的起点。用它来新建其他账户。

这里特别一点,如果你已经登录在计算机中,在终端进入 psql的时候,会映射你当前用户为 postgres登录到数据库。

登录使用

psql -U <role name> -d <data base>

1) 不指定 -U参数,即用当前用户名作为 角色名登录。 2) 登录除了指定用户,需要制定一个数据库作为登录入口,一般会有同用户名的DB,这里 -d不指定就是 同用户名

我们根据默认生成的postgres可以这样以超级用户身份登录

psql -U postgres

并且依附同名数据库。

psql (10.17)
Type "help" for help.

postgres=#

这里,# 代表超级用户 > 是普通用户 左边代表数据库,目前处在postgres数据库中

2.2 退出shell

\q 退出shell。

三、角色

PG内部通过 role 来划分权限。

\du 可以查看目前所有角色。

默认的超级用户(Superuser)拥有创建角色,创建数据库等能力。可以对其他的角色以及数据库进行增删。

3.1 创建一个角色

备注: [] 这里表示可选,不代表实际输入 <> 这里表示必选

CREATE ROLE <user name> LOGIN CREATEDB CREATEROLE;

可以创建一个角色,LOGIN表示可以登录,还有创建DB和创建角色的权限。

官方标准手册建议把 创建DB、创建角色分成两个用户,单独管理和操作,而不是一个超级用户直接创建。

3.1.1 设置一个密码

\password <user name>

3.2 删除角色

drop role <user name>

一般要把权限转移走,或者名下无关联的数据库,数据库被删除。无副作用的角色可以被移除。

3.3 切换角色

\c - <role name> 切换到目标角色

\c <database name> 切换到数据库

3.4 权限组增减角色

GRANT group_role to role1, .... 给权限组增加角色

REVOKE group_role from role1,... 给权限组移除角色

3.5 SET ROLE

一些角色权限,比如设置角色,类似于 超级用户,即使是权限组也并不会真正拥有。

需要你在 交互环境中 set ROLE postgres; 你在这个会话中就拥有了超级用户权限。类似于 sudo了。然后行使权限。

3.6 RESET 角色

SET ROLE <原来角色>;
SET ROLE NONE;
RESET ROLE;

四、数据库

4.1 创建数据库

在外部shell中

createdb <db name>

在内部交互环境中

CREATE DATABASE <db name>;

4.2 删除数据库

drop database <db name>;

4.3 查看数据库

\l

4.4 切换数据库

\c <db name>

五、表

5.1 创建表

参考 《Postgresql笔记(一)》

5.2 列出所有表

\dt

六、查看配置路径

  1. 进入 postgresql psql

  2. 打印配置文件路径 SHOW data_directory;

七、允许 0.0.0.0 访问

配置目录下

postgresql.conf

其中 listen_address = '*'

brew info postgresql 查看重启服务命令

Mark24

Everything can Mix.