postgresql 命令行操作

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数据库创建用户

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值