1.登录

#只指定用户,默认postgres库
psql -U postgres#指定主机和端口,用户,还需要密码认证,默认postgres库
psql -h localhost -p 5432 -U postgres --password#指定主机和端口,用户,数据库
psql -h localhost -p 5432 -U postgres  -d '数据库' --password

2.常用命令

\l  查看系统中现存的数据库
\c  切换库,如template1=# \c sales 从template1转到sales库
\d  查看表和sequence
\d  table_name,查看表结构,如:\d public.t_ip或\d t_ip,虽然`\d`看不到其他schema的表,但依然可以描述表`\d wechat.stat_basic_hour`
\dt 只查看表
\di 查看索引
\du 查看有哪些用户
\dn 查看schema
\dp 显示表的权限分配情况
\q 退出客户端程序psql
SET SEARCH_PATH TO public,wechat;   设置搜索路径(不区分大小写,下同) 设置后`\d`能列出指定的schema的表和sequence
SHOW SEARCH_PATH;    查看搜索模式
SELECT USER;    查看当前是什么用户登录的
postgres=# \conninfo 查看连接信息(什么用户连的)

3. 用户相关

创建数据库
CREATE DATABASE data_transfer;pg 默认所有用户都可以在名称为public的schema中创建表,只读用户不允许创建,所以要收回此权限
revoke create on schema public from public;创建schmea
create schema data_out创建只读用户my_user
create user my_user with password 'password';#授权数据库给用户
GRANT ALL ON DATABASE exampledb TO my_user;#授权表给用户
GRANT ALL ON public.mpa_app TO my_user;#授权sequence给用户
GRANT ALL ON SEQUENCE public.mpa_app_id_seq to my_user;授权schema给用户
grant usage on schema data_out to my_user;授权public给用户,y用户创建表
grant create on schema "public" to "my_user"授权用户查看schema data_out下的所有表(此时库的的所有表,新增表不能看到)
grant select on all tables in schema data_out to my_user;授权my_user用户查看新创建表的select 权限
alter default privileges in schema data_out grant select on tables to my_user;不需要一个个地授权,授予指定schema 下所有数据表及序列的权限
grant all privileges on all tables in schema public to my_user;
grant all privileges on all sequences in schema public to my_user;赋予默认数据表的权限
alter default privileges in schema public grant all privileges on tables to my_user;赋予默认序列的权限
alter default privileges in schema public grant all privileges on sequences to my_user;在指定数据为执行,回收连接public权限,防止已经创建的库未设置权限,表被访问到
revoke connect on database rohs from public;# 修改库的所有者
alter database mytestdb owner to mpa_dev;#修改schema所有者
alter schema wechat owner to mpa_dev;

 删除用户

# 将old_user拥有owner权限的对象转移给other_user,那么old_user将不会再拥有owner权限的对象了
# REASSIGN OWNED BY中可以将对象的拥有者修改为postgres或是其他较高权限的业务账号
REASSIGN OWNED BY old_user TO postgres;
# 在当前库中,删除用户拥有的对象;并收回在当前库赋予的任何权限
# 由于之前已经使用了REASSIGN OWNED BY,old_user用户下已无owned的对象,对于账号不只是存在owner的情况,可能用户只是查询或修改的权限,此时再使用DROP OWNED BY则可以将其他权限收回。
DROP OWNED BY old_user;
# 最后删除账号
DROP USER old_user;

案例 :

 create user my_user with password 'root';GRANT ALL ON DATABASE mydatabase TO my_user;grant create on schema "public" to "my_user";grant usage on schema public to my_user;

4.建库和建Schema

# 建库
CREATE DATABASE mpa_stat OWNER dbuser;
# 删除
DROP DATABASE mpa_stat;创建、删除schema
CREATE SCHEMA myschema;   (是创建在当前数据库,使用\dn查看)
DROP SCHEMA myschema;
创建schema下的表
create table myschema.company(ID   INT              NOT NULL,NAME VARCHAR (20)     NOT NULL,AGE  INT              NOT NULL,ADDRESS  CHAR (25),SALARY   DECIMAL (18, 2),PRIMARY KEY (ID)
);
查询表
select * from myschema.company;

参考:

PostgreSQL常用命令行操作-蒲公英云

PostgreSql数据库创建用户并授权_DevCsdner的博客-CSDN博客_pg数据库创建用户

postgresql 命令行操作相关推荐

  1. 批处理使用完文件后释放_windows 下使用批处理执行 postgresql 命令行操作

    1.准备好命令文件 loraserver.sql create role loraserver_as with login password 'dbpassword';create role lora ...

  2. pgsql(PostgreSQL)常用命令行操作

    PostgreSQL常用命令行操作 注意 注意有些命令要以;结尾,有些不用(一般是 \命令 的不用) 不以;结尾的命令相当于未换行 允许一次性粘贴执行多行命令 登录 # 切换用户 (必须先切换到pos ...

  3. DOS命令行操作MySQL常用命令

    平时用可视化界面用惯了,如果紧急排查问题,没有安装可视化工具的话,只能通过命令来看了. 以备不时之需,我们要熟悉一下命令行操作MySQL. 打开DOS命令窗口:WIN + R 输入cmd,回车 然后输 ...

  4. github命令行操作

    首先做准备工作,安装github客户端Git Shell和GitHub,GitHub用于界面化操作,本次主要说一下如果用命令行操作, 1.打开Git Shell,进入本地项目库,cd F:gitdem ...

  5. 命令行操作svn和git和git

    前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音, ...

  6. gitlab ci 自动化部署_前端gitLab加jenkins自动化构建和部署,以及服务器常用的linux命令行操作,免密登录...

    常用的linux命令行操作 将项目部署到服务器后,需要查看文件是否已经部署成功,已经对文件进行增删改查操作,就需要用到命令行操作,常用操作如下: ll 罗列出当前文件或目录的详细信息,含有时间.读写权 ...

  7. kafka _命令行操作

    kafka _命令行操作 #启动zk zkServer.start #启动kafka kafka-server-start.sh -daemon /opt/kafka/config/server.pr ...

  8. Zookeeper的简介及命令行操作

    目录 前言 1.Zookeeper简介 2.Zookeeper结构 3.Zookeeper常用的命令行操作 总结: 目录 前言 作为一款第三方的协调服务框架,ZK被应用在许多地方,如:Hbase中用于 ...

  9. Serverless 场景排查问题利器 : 函数实例命令行操作

    简介:实例命令行功能的推出希望能消除用户使用 Serverless 的"最后一公里",直接将真实的函数运行环境展现给用户. 背景介绍 全托管的 Serverless 计算平台能给用 ...

最新文章

  1. 【Ubuntu入门到精通系列讲解】系统信息相关命令
  2. MS CRM 2011插件调试工具
  3. 测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机
  4. [PAT乙级]1016 部分A+B
  5. 【渝粤题库】陕西师范大学200781 数据库原理及应用 作业
  6. td过长,将固定宽度table撑开
  7. php文件夹0777,PHP代码mkdir(‘images’,’0777′)创建一个具有411权限的文件夹!为什么?...
  8. 为什么虚拟助手的前途一片光明
  9. 第五届蓝桥杯校内选拔赛试题java组_第五届蓝桥杯校内选拔赛试题java组
  10. 在函数中的局部程序(像是比局部变量还局部的部分)
  11. 嵌入式工程师有发展前途吗?这是我看过最靠谱的回答
  12. 【编辑器】Atom上手
  13. springboot 集成 log4j,log4j配置不同包不同日志输出级别(按包输出不同级别日志)
  14. 网站上传服务器浏览器打不开,网站发布或自己上传程序后,网站打不开的原因有哪些?...
  15. 十分钟开发出神经网络五子棋(二)
  16. 给2011年的MacBook Pro和MacBook Air升级到最新系统和做双系统时遇到的问题
  17. html的css怎么设置深度,vue css 深度选择器
  18. c++11新特性--decltype
  19. a股用计算机模拟走势,详解A股前方是上涨而不是下跌
  20. 基站侧与核心网侧进行交互涉及PLMN和PLMN ID换算及其代码实现

热门文章

  1. linux 目录中的文件和子目录生成jar包文件的方法
  2. Oracle 报 “ORA-00054 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效” 问题的解决方法
  3. VideoCapture详解
  4. 分位数Granger因果检验实现原理
  5. java android studio 安卓开发 - 使用java发送邮件
  6. RNA m6A修饰问题汇总(第二期)
  7. 大数据分析及挖掘技术
  8. apple id是什么意思
  9. Linux下Socket编程之UDP原理
  10. Linux环境下安装部署redis