Mark24
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
六、查看配置路径
-
进入 postgresql
psql
-
打印配置文件路径
SHOW data_directory;
七、允许 0.0.0.0 访问
配置目录下
postgresql.conf
其中
listen_address = '*'
brew info postgresql 查看重启服务命令