Mac搭建postgreSQL 一些基础命令与注意事项

目录

概要

[PostgreSQL 的特点以及概念 - 个人观点](#PostgreSQL 的特点以及概念 - 个人观点)

​编辑

Linux环境使用小记


概要

本文仅作学习参考 仅代表个人学习postgresql数据库的一些心得体会。

学习过程中本人参考密歇根大学postgresql课程,从环境搭建到sql语法。

由于学习课程使用linux环境,而本人日常使用mac环境,所以会有一些终端命令上的区别,我会在这里将两种环境穿插着记录学习心得。

PostgreSQL 的特点以及概念 - 个人观点

postgresql是以数据库为访问目标的sql,听起来很抽象,即针对某个存在的database,我可以访问它,其他人也可以访问它,允许同时访问它,所以用户反而是隐藏的概念 在psql里不重要,重要的是所访问的数据库 以及对该数据库建表等系列操作。

从linux和mac分别进入psql是有区别的,mac里并不会默认创建一个postgresql用户,但是linux会,mac只会用你的apple用户名做默认登陆,这一点进入psql后可以使用' \connect '查看当前连接的用户。

使用' psql ' 即可登陆postgresql,这里如果你不指定任何连接的服务器,端口,用户名,数据库,将会使用默认用户登陆默认数据库,在mac上即使用默认用户(与你apple用户名相同)登陆默认数据库(与你apple用户名相同)。

如果你不满足使用默认用户登陆,不满足使用默认创建的数据库,那么你可以自己创建新的用户和数据库即使用下方创建新用户命令:

sql 复制代码
create user claem with password '';   #空白'' 意味着空白密码 会弹出警告 仍会创建成功

新创建的用户是不具备任何权限的 使用' \du ' 命令查看所有用户的权限:

(注意👆此处我是以默认用户登陆进行的创建用户命令)

除了默认的用户(同apple用户名一致),其他新用户均不具有权限,需要我们增加权限(创建数据库,创建新用户,...)。如果你以某个没有任何权限的用户登陆数据库,那么你无法进行任何操作,包括运行上述创建用户的命令。

此处我以claem用户登入数据库,该用户没有任何权限,我尝试运行创建新用户命令失败,提示permission denied。

接下来我为claem用户增加权限(依旧先登陆默认用户 拥有超级权限可做任何更改):

sql 复制代码
alter user claem with createdb;

alter user claem with createrole;

登陆supersuer为新用户claem增加了创建数据库、创建角色权限。

基本权限设定好之后,我们允许任何有权限的用户创建数据库,该数据库也允许多个用户共用,意味着A创建了数据库db01,B、C可以在db01里创建表t01、t02,...,这一点很重要,因为登陆sql的时候允许不指定用户名登陆即仅:' psql 数据库名 '登陆,并且多台服务器可以一同登陆。

查看数据库db01里的表信息,可以发现存在不同用户创建的表,当前我使用test01用户登陆,尝试查看默认用户创建的表t02,发现没有权限:

而切换至默认超级用户后可以随意查看其他普通用户创建的表,这说明普通用户之间互相查看/修改表内容也需要授权即:

sql 复制代码
grant all on table 表名 to 用户名;

同理针对t02,我们登陆test01用户将该表为claem用户授权,之后claem可以正常访问该表。

注意任何对表的授权命令,均需要表所属用户登陆才能执行,此处尝试使用test01用户为claem授权表t01失败,test01用户仅能授权自己的表t02,授权成功后claem可以正常访问t02。

同理,针对数据库的修改也需要数据库所属用户授权,才能在数据库里执行建表等操作。

Linux环境使用小记

待更新..

相关推荐
invicinble7 分钟前
对于mysql层对sql层面的知识体系的理解和把握
数据库·sql·mysql
2301_790300969 分钟前
用Matplotlib绘制专业图表:从基础到高级
jvm·数据库·python
DFT计算杂谈33 分钟前
VASP+PHONOPY+pypolymlpj计算不同温度下声子谱,附批处理脚本
java·前端·数据库·人工智能·python
数据知道35 分钟前
PostgreSQL核心原理:为什么数据库偶尔会卡顿?
数据库·postgresql
Nandeska41 分钟前
14、MySQL基于GTID的数据同步
数据库·mysql
Mr_Xuhhh41 分钟前
MySQL表的内连接与外连接详解
java·前端·数据库
l1t1 小时前
DeepSeek辅助总结postgresql wiki提供的数独求解器
数据库·sql·postgresql
Moshow郑锴1 小时前
Spark在银行系统ETL中的实战应用:TXT文件到PostgreSQL的余额处理全流程
postgresql·spark·etl
appearappear1 小时前
大数据量处理
数据库
万行1 小时前
SQL进阶&索引篇
开发语言·数据库·人工智能·sql