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常用命令行操作-蒲公英云文章来源:https://www.toymoban.com/news/detail-590248.html
PostgreSql数据库创建用户并授权_DevCsdner的博客-CSDN博客_pg数据库创建用户文章来源地址https://www.toymoban.com/news/detail-590248.html
到了这里,关于postgresql 命令行操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!