Postergresql常见操作

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
 
posted @ 2024-04-25 16:16  IT人生--MarkGuo  阅读(30)  评论(0编辑  收藏  举报