postgresql数据库常规操作管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql数据库常规操作管理相关的知识,希望对你有一定的参考价值。

数据库连接:
方式一:

psql -U test_huishishuju -d test_huishishuju

参数说明: -U 数据库用户名 -d 数据库名称
方式二:

su – postgres

-bash-4.2$ psql       进入postgres数据库

数据库用户管理:
创建用户
postgres=# create user dev_huishishuju; 或者create role dev_huishishuju; 创建数据库用户
postgres=# alter user dev_huishishuju with password ‘123456‘; 修改数据库用户的密码为123456

设置用户权限
? 基本语法格式
CREATE或者ALTER ROLE role_name WITH optional_permissions(用户的授权);

实例:
postgres=# alter user dev_huishishuju with superuser; 修改用户的属性,设置数据库用户dev_huishishuju为superuser
postgres=# alter user dev_huishishuju with login; 给数据库用户设置登陆权限

? 设置用户权限的语法格式如下:
GRANT permission_type ON table_name TO role_name;

实例:
dev_huishishuju=# grant UPDATE ON t_sms TO rd_huishishuju ; 赋予用户rd_huishishuju对t_sms表的update权限
postgres=# grant SELECT on ALL tables in schema public to rd_huishishuju ; 赋予rd_huishishuju用户对所有表有查询权限
dev_huishishuju=# grant ALL ON t_admin to rd_huishishuju ; 赋予rd_huishishuju用户对t_admin数据库表拥有所有权限

进入数据库的常用操作:
test_huishishuju=> help 帮助命令
test_huishishuju=> l 显示详细的数据库信息
test_huishishuju=> c postgres 切换postgres数据库
test_huishishuju=> dt 或者d 列举所在数据库的表,相当于show databases
test_huishishuju=> d t_sms 查看t_sms表的结构
test_huishishuju=> di 查看数据库表的索引
test_huishishuju-# du 列出所有的用户信息
test_huishishuju-# connect 列出当前数据库的连接信息
test_huishishuju-# conninfo 列出当前数据库和连接的详细信息
test_huishishuju=# q 退出当前操作
dev_huishishuju=# dp或者z 显示用户的对所有数据库表的详细访问权限
数据库管理:
postgres=# create database beiyi; 创建数据库beiyi
postgres=# drop database beiyi; 删除数据库beiyi
postgres=# alter database dev_huishishuju OWNER TO dev_huishishuju ; 修改数据库的用户归属

表管理:
postgres=# c beiyi 切换到beiyi数据库
beiyi=# create table user_beiyi(name VARCHAR(20), signup_date DATE); 创建user_beiyi表
beiyi=# INSERT INTO user_beiyi (name, signup_date) VALUES(‘张三‘, ‘2013-12-22‘); user_beiyi表中插入数据
test_huishishuju-# alter table test_huishishuju add column name character varying(16); 在表test_huishishuju里添加字段,说明:name为字段名,character varying(16)为字段类型
beiyi-# dorp table user_beiyi 删除数据库表user_beiyi

数据库表的备份与恢复:
#pg_dump -h 192.168.2.242 -U postgres -p 5432 -t t_sms dev_huishishuju > t_sms.db

pg_dump -h 192.168.2.242 -U postgres -p 5432 -c --if-exists -t t_sms dev_huishishuju > t_sms.db 远程备份

-bash-4.2$ psql -f t_sms.db -d test_huishishuju 切换postgres用户,还原必须要保证有权限

数据库的备份与还原

pg_dump -h 192.168.2.242 -U postgres -p 5432 -c --if-exists dev_huishishuju > dev_huishishuju.sql 备份192.168.2.242数据库上的dev_huishishuju数据库

-bash-4.2$ psql -f dev_huishishuju.sql -d dev_huishishuju 还原数据库,dev_huishishuju.sql为备份文件,dev_huishishuju为新创建的数据库

以上是关于postgresql数据库常规操作管理的主要内容,如果未能解决你的问题,请参考以下文章

如何利用postgresql执行操作系统命令?

PostgreSQL数据库管理常见操作

PostgreSQL数据库管理常见操作

Flask 编写http接口api及接口自动化测试

PostgresSQL数据库安装及操作

postgresql事务处理与并发控制