Postergresql常见操作

postergresql · 浏览次数 : 0

小编点评

**1. 安装部署** ```bash # 首先,需要安装 PostgreSQL 数据库。 sudo apt-get update sudo apt-get install postgresql-server ``` **2. 登录数据库 查看版本** ```bash # 然后,将到 `xc_hzh_linan` 数据库中添加管理员用户 `postgres`: ```sql CREATE USER postgres WITH PASSWORD 'password'; ``` **3. 更改当前连接的数据库** ```bash # 现在,我们将连接 `test` 数据库。 psql -h localhost -p 5432 -U postgress testdb ``` **4. 查看用户访问权限** ```bash # 让我们查看用户 `postgres` 的访问权限: \z or \dp ``` **5. 创建用户** ```bash # 创建名为 `zhaobsh` 的新用户: ```sql CREATE ROLE zhaobsh WITH SUPERUSER; ``` **6. 更改用户密码** ```bash # 更改 `zhaobsh` 用户的密码: ```sql ALTER ROLE zhaobsh WITH PASSWORD 'NewPassword'; ``` **7. 创建数据库和用户** ```sql # 创建名为 `GSCloud1903` 的数据库: ```sql CREATE DATABASE GSCloud1903; ``` **8. 给用户权限授权** ```sql # 为 `zhaobsh` 用户赋予对 `GSCloud1903` 数据库的所有权限: ```sql GRANT ALL ON tablename TO user; ``` **9. 修改数据库属主** ```sql # 将 `GSCloud1903` 数据库的属主从 `postgres` 更改为 `zhaobsh`: ```sql ALTER DATABASE GSCloud1903 owner to zhaobsh; ``` **10. 查看数据库信息** ```bash # 让我们查看数据库的详细信息: \l+ ``` **11. 导出数据库** ```bash # 导出 `test` 数据库: ```sql pg_dump -U postgres(用户名)  (-t 表名) 数据库名(缺省时同用户名)  > 路径/文件名.sql ``` **12. 导入数据库** ```bash # 导入 `test` 数据库: ```sql # 创建数据库并授权创建用户: $ createdb newdatabase$ psql -d newdatabase -U postgres -f mydatabase.sql   # 使用 `postgres` 用户导入 `mydatabase.sql` 文件: $ psql -d databaename(数据库名) -U username(用户名) -f < 路径/文件名.sql ```

正文

Postergresql常见操作

1. 安装部署 略

2. 登录数据库 查看版本

## 以管理员身份 postgres 登陆,然后通过
#psql -U postgres
#sudo -i -u postgres

$ psql xc_hzh_linan                    #登录xc_hzh_linan数据库
$ psql -U postgres test               #以postgres用户身份,登录test数据库
psql -h localhost -p 5432 -U postgress testdb

 

3. 相关命令


使用反斜线作为命令前缀.

退出 \q 列出所有的数据库 \l 列出所有的数据库的大小 \l+ 更改当前连接的数据库 \c 列出当前数据库的连接信息 \connect 列出当前数据库和连接的详细信息 \conninfo 查看当前数据库里面的表和拥有者和表大小 \dt + 展示所有用户 \dg

查看所有表名的列表 \d 获取表结构 \d a 展示所有用户 \du 查看t_sms表的结构 \d t_sms 展示数据库里面的所有的表 \dt 列出所有的数据库的详细信息(包括数据库大小和字符格式) \l+ 显示用户访问权限。 \z或\dp 显示所有可设置的访问权限 \h GRAN 显示用户的对所有数据库表的详细访问权限 \dp或者\z 确认当前连接的用户为超级用户postgres,且该用户后创建角色和数据库的权限等 #select current_user; 在超级用户连接postgres后,设置不允许普通用户a连接数据库 #alter role a nologin;

使用普通用户a连接数据库正常 #\c highgo a

查看当前连接的用户名: foo=#select * from current_user; foo=#select user;

查看所有用户名: foo=#\du

4、创建/删除用户及权限相关

4.1 创建用户

create role zhaobsh;
create user wzq with password '123456';                       #设置用户,并设置密码
create database xc_hzh_linan owner xchzhlinan ;         #创建数据库以及所属用户

drop user runoob; # 删除用户 runoob

4.2 更改用户密码

alter role zhaobsh with password 'Test6530';

or

\password zhaobsh

ALTER USER postgres WITH PASSWORD 'postgres';


-----
注:

密码postgres要用引号引起来

命令最后有分号
----

4.3 给用户添加权限

授权给用户** PostgreSQL中预定义了许多不同类型的内置权限,如:SELECT、INSERT、UPDATE、DELETE、RULE、REFERENCES、TRIGGER、CREATE、TEMPORARY、EXECUTE和USAGE。**

要做操作需登录这个用户,不然没权限 他是管理员用户

alter user asan with SUPERUSER; # 类似postgres的SUPERUSER 权限用户
#
grant all on database "GSCloud1903" to zhaobsh;                         #赋予用户zhaobsh数据库所有权限

grant UPDATE ON database "GSCloud1903" to zhaobsh;             # 赋予用户zhaobsh数据库更新权限

/* 赋给用户表的所有权限 */
GRANT ALL ON tablename TO user;

/* 赋给用户数据库的所有权限 */
GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;

/* 撤销用户权限 */
REVOKE privileges ON tablename FROM user;

### 修改数据库的属主属组
alter database "GSCloud1903" owner to zhaobsh;
ALTER ROLE user_4 WITH CREATEROLE;           /*赋予创建角色的权限*/  
alter database "GSCloud1903" rename to zhaobsh;             --修改schema的名称

5 数据库库表操作

5.1 查看数据库

# \L

5.2 删除数据库

postgres=# drop database test;

#如果数据库名称中包含符号-,则用双引号包括数据库名称

postgres=# drop database "test-study";

5.3 查看当前数据库

postgres# select current_database();

5.4 切换数据库

postgres# \c db

5.5 创建数据库并授权

CREATE DATABASE dbname;

postgres=# create database dbtest owner username; -- 创建数据库指定所属者
CREATE DATABASE


将数据库得权限,全部赋给某个用户

postgres=# grant all on database dbtest to username; -- 将dbtest所有权限赋值给username
设置是 supseruser 以及 登录权限
alter user zhaobsh superuser login

5.5 退出数据库

postgres# \q

 

数据表

5.6 显示当前数据库中的所有表

# \d

5.7 显示指定表结构

postgres# \d tableName

5.8 查表内容

seelect * from tablename;

6 数据库备份恢复操作

------------------------数据的导出:
$ pg_dump -U postgres(用户名)  (-t 表名) 数据库名(缺省时同用户名)  > 路径/文件名.sql

postgres@debian:~$ pg_dump -U postgres -t system_calls wangye > ./test.sql
postgres@debian:~$ ls
9.1 test.sql
-----------------------数据的导入:
导入数据时首先创建数据库再用psql导入:

$ createdb newdatabase
$ psql -d newdatabase -U postgres -f mydatabase.sql   // sql 文件在当前路径下


$ psql -d databaename(数据库名) -U username(用户名) -f < 路径/文件名.sql // sql 文件不在当前路径下

$ su postgresql   #切换到psql用户下
$ psql -d wangye -U postgres -f system_calls.sql   # sql 文件在当前路径下
INSERT 0 1
INSERT 0 1
INSERT 0 1
 

与Postergresql常见操作相似的内容:

Postergresql常见操作

Postergresql常见操作 1. 安装部署 略 2. 登录数据库 查看版本 ## 以管理员身份 postgres 登陆,然后通过#psql -U postgres#sudo -i -u postgres​ $ psql xc_hzh_linan #登录xc_hzh_linan数据库 $ psq

[转帖]PostgreSQL(三) 内存参数优化和原理(work_mem)内存表 pgfincore插件使用方法

1.常用内存参数 1.1 shared_buffers shared_buffers是PostgreSQL用于共享缓冲区的内存,是由8kb大小的块所形成的数组。PostgreSQL在进行更新、查询等操作时,首先从磁盘把数据读取到内存,之后进行更新,最后将数据写回磁盘。shared_buffers可以

基于SqlSugar的开发框架循序渐进介绍(27)-- 基于MongoDB的数据库操作整合

SqlSugar的开发框架本身主要是基于常规关系型数据库设计的框架,支持多种数据库类型的接入,如SqlServer、MySQL、Oracle、PostgreSQL、SQLite等数据库,非关系型数据库的MongoDB数据库也可以作为扩展整合到开发框架里面,通过基类的继承关系很好的封装了相关的基础操作功能,极大的减少相关处理MongoDB的代码,并提供很好的开发效率。本篇随笔介绍如何在SqlSuga

[转帖]postgresql 表和索引的膨胀简析

postgresql 表和索引的膨胀是非常常见的,一方面是因为 autovacuum 清理标记为 dead tuple 的速度跟不上,另一方面也可能是由于长事物,未决事物,复制槽引起的。 #初始化数据 zabbix=# create table tmp_t0(c0 varchar(100),c1 v

[转帖]postgresql 的 .pgpass密码文件的使用

.pgpass 是 连接 postgresql 时使用的密码文件,通常位置为 ~/.pgpass。 在使用某些组件时还真的必须使用。具体的格式为: hostname:port:database:username:password 常见的使用如下: # su - postgres $ vi ~/.pg

[转帖]postgresql 的 .pgpass密码文件的使用

.pgpass 是 连接 postgresql 时使用的密码文件,通常位置为 ~/.pgpass。在使用某些组件时还真的必须使用。具体的格式为: hostname:port:database:username:password 常见的使用如下: # su - postgres $ vi ~/.pgp

[转帖]KingbaseES不同字符类型比较转换规则

https://www.cnblogs.com/kingbase/p/14798059.html Postgresql 常用的字符数据类型的有char、varchar和text,其中 char 固定长度类型, varchar 和 text 是可变长度类型。这三种类型在进行比较时,会进行隐含的类型转换

[转帖]PostgreSQL 日志参数解释 常用环境日志参数配置

1.常用日志参数 logging_collector = on/off 是否将日志重定向至文件中,默认是off(该配置修改后,需要重启DB服务),启动之后查看进程ps -ef|grep postgres,会多一个logger进程。 log_directory = 'pg_log' 日志文件目录,默认

SQLite vs MySQL vs PostgreSQL对比总结

开发业务系统时,是绕不开RDBMS(关系型数据库)的。虽然现在诞生了各种NoSQL的数据库,RDBMS在业务系统中的严谨和优势依然无法取代。 近几年大大小小的项目中,常用的三种RDBMS(SQLite,MySQL,Postgres)都有多次接触过,一些使用心得记录如下,供大家参考。 1. SQLit

[转帖]initdb命令 – 初始化PostgreSQL数据库

https://www.xtuos.com/2202.html 使用initdb命令可以在安装完PostgreSQL服务器所需软件包之后,初始化一个PostgreSQL数据库簇。 语法格式: initdb [参数] [目录] 常用参数: -U 指定数据库超级用户名 -W 对于新的超级用户提示输入口令