前面介绍了 PostgreSQL 基础概念及安装部署、目录结构与配置文件 postgresql.conf 相关的知识点,今天我将详细的为大家介绍 PostgreSQL 常用管理命令 相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!
登录命令
#连接指定服务器上的数据库
psql -h IP -p 端口 -U 用户名 -d 数据库名 -W
psql 是PostgreSQL的一个命令行交互式客户端工具,它具有非常丰富的功能,类似于Oracle的命令行工具sqlplus。
-h #数据库所在的IP地址
-p #(默认5432)数据库的监听端口
-U #用户名
-d #数据库名称
常用命令说明
\? #所有命令帮助
\l #列出所有数据库
\d #列出数据库中所有表
\dt #列出数据库中所有表
\d [table_name] #显示指定表的结构
\di #列出数据库中所有 index
\dv #列出数据库中所有 view
\h #sql命令帮助
\q #退出连接
\c [database_name] #切换到指定的数据库
\c #显示当前数据库名称和用户
\conninfo #显示客户端的连接信息
\du #显示所有用户
\dn #显示数据库中的schema
\encoding #显示字符集
select version(); #显示版本信息
\i testdb.sql #执行sql文件
\x #扩展展示结果信息,相当于MySQL的\G
\o /tmp/test.txt #将下一条sql执行结果导入文件中
用户管理
创建账号
创建用户
create user 用户名 password '密码';
#设置只读权限
alter user 用户名 set default_transaction_read_only = on;
#设置可操作的数据库
grant all on database 数据库名 to 用户名;
#授权可操作的模式和权限
-- 授权
grant select on all tables in schema public to 用户名;
-- 授权
GRANT ALL ON TABLE public.user TO mydata;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.user TO mydata_dml;
GRANT SELECT ON TABLE public.user TO mydata_qry;
删除账号
#撤回在public模式下的权限
revoke select on all tables in schema public from 用户名;
#撤回在information_schema模式下的权限
revoke select on all tables in schema information_schema from 用户名;
#撤回在pg_catalog模式下的权限
revoke select on all tables in schema pg_catalog from 用户名;
#撤回对数据库的操作权限
revoke all on database 数据库名 from 用户名;
#删除用户
drop user 用户名;
更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。
权限管理
授权
#设置只读权限
alter user 用户名 set default_transaction_read_only = on;
#设置可操作的数据库
grant all on database 数据库名 to 用户名;
#设置可操作的模式和权限
grant select,insert,update,delete on all tables in schema public to 用户名;
撤回权限
#撤回在public模式下的权限
revoke select on all tables in schema public from 用户名;
#撤回在information_schema模式下的权限
revoke select on all tables in schema information_schema from 用户名;
#撤回在pg_catalog模式下的权限
revoke select on all tables in schema pg_catalog from 用户名;
#撤回对数据库的操作权限
revoke all on database 数据库名 fr