postgreSQL数据库默认用户postgres常用命令分享_PostgreSQL

来源:脚本之家  责任编辑:小易  

1、修改用户postgres的密码

#alter user postgres with password ‘xxxx';(其中xxxx是修改的密码)。

2、查看下当前schema的所有者:

// 查看当前schema的所有者,相当于\du元命令
SELECT n.nspname AS "Name",
 pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner"
FROM pg_catalog.pg_namespace n
WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'
ORDER BY 1; 

3、查询结果如图所示,模式“abc”的所有者为postgresql用户

针对模式“abc”, 使用超级管理员postgresql给普通用户test授权,命令如下:

// 最后一条命令就是授予初始权限
grant select on all tables in schema abc to test;
grant usage on schema abc to test;
alter default privileges in schema abc 
#将表mytable,授权给testUser;
#GRANT SELECT ON TABLE mytable TO testUser;

4、查看默认权限

授权完成,通过pg_default_acl表查看默认权限:

// 查看初始权限
select * from pg_catalog.pg_default_acl;

5、把模式“abc”的拥有者(owner)修改为dbadmin用户(可以事先创建好),执行以下命令:

// 修改模式“abc”拥有者为:dbadmin
ALTER SCHEMA abc OWNER TO "dbadmin";
// 查看模式的拥有者,相当于\du元命令
SELECT n.nspname AS "Name",
 pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner"
FROM pg_catalog.pg_namespace n
WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'
ORDER BY 1;

6、postgre查询所有用户,postgre中查询用户所拥有的权限

select * from pg_roles;
select * from pg_user;

权限查询:

select * from information_schema.table_privileges where grantee='cc';

查看当前用户的所有权限

select * from information_schema.table_privileges where grantee='user_name';

7、把适用于该对象的所有权限都赋予目标角色。

用特殊的名字 PUBLIC 把对象的权限赋予系统中的所有角色。 在权限声明的位置上写 ALL,表示把适用于该对象的所有权限都赋予目标角色。

beigang=# grantall on schema csm_ca to public;
GRANT
beigang=# revoke all on schema csm_ca frompublic;
REVOKE

8、先创建一个角色xxx,再创建一个超级用户csm、普通用户csm_ca,csm用户创建一个数据库testdb,在这个数据库里创建一个schema:csm_ca,然后赋予普通用户csm_ca操作数据库testdb里schema:csm_ca里的表的权限。

#create role:
#create role xxx with superuser;
#Create user:
# create user csm with superuserpassword 'csm';
# create user csm_ca with password 'csm_ca';

9、超级用户csm给普通用户csm_ca授予操作schema csm_ca的权限

beigang=# grant all on schema csm_ca to csm_ca;
GRANT
beigang=# grant all on all tables in schema csm_ca to csm_ca;
GRANT

10、创建用户

#创建普通用户
postgres=# create user test encrypted password 'test';
#创建超级用户
postgres=# create user test2 superuser;
#创建一个普通用户,并且赋予相关权限
# create user test createdb createrole inherit password 'test';
#将超级用户修改为普通用户
# alter user test nosuperuser;
#修改用户为超级用户
postgres=# alter user test superuser;
#修改用户密码
postgres=# alter user test2 password 'test';
#修改用户名
postgres=# alter user test2 rename to test3;
#锁定/解锁用户,不允许/允许其登录
postgres=# alter user test nologin;
postgres=# alter user test login;
#设置用户的连接数,其中0表示不允许登录,-1表示无限制
postgres=# alter user test connection limit 10;

11、授予用户数据库权限

GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO 用户名;

12、授予用户查看刚授权的数据库的里面的表的权限

GRANT ALL PRIVILEGES ON TABLE 表名 TO 用户名;

13、附带一条:修改的表的类型

alter table 表名 alter 字段名 type 类型;

14、附带一条:增加表新的字段

alter table 表名 add column 字段名 text(字段类型);

15、新增:设置主键自增

CREATE SEQUENCE user_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE 
NO MAXVALUE
CACHE 1;
 
alter table sys_user alter COLUMN id set DEFAULT nextval('user_id_seq');

16、新增:postgres创建B-Tree索引

-- create index '索引名' on '表名' ('需要索引的字段')
CREATE INDEX ip_store_inde on ip_store (ip_network);

添加各种约束

(1)、 添加主键

alter table goods add primary key(sid);

(2)、 添加外键

alter table orders add foreign key(goods_id) references goods(sid) on update cascade on delete cascade;

on update cascade:被引用行更新时,引用行自动更新;

on update restrict:被引用的行禁止更新;

on delete cascade:被引用行删除时,引用行也一起删除;

on dellete restrict:被引用的行禁止删除;

(3). 删除外键

alter table orders drop constraint orders_goods_id_fkey;

(4). 添加唯一约束

alter table goods add constraint unique_goods_sid unique(sid);

(5). 删除默认值

alter table goods alter column sid drop default;

(6). 修改字段的数据类型

alter table goods alter column sid type character varying;

(7). 重命名字段

alter table goods rename column sid to ssid;

17、创建唯一键约束

constraint user_info_unique_userid unique(userid)

扩展

编辑配置文件

文件:postgresql.conf

位置:/var/lib/pgsql/data/postgresql.conf

添加/修改:在所有IP地址上监听,从而允许远程连接到数据库服务器:

listening_address: '*'

文件:pg_hba.conf

位置:/var/lib/pgsql/data/pg_hba.conf

添加/修改:允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:

host  all       all       0.0.0.0/0        md5

以上为个人经验,希望能给大家一个参考,也希望大家多多支持真格学网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:postgresql修改完端口后直接psql连接数据库报错的解决postgresql数据库安装部署搭建主从节点的详细过程(业务库)如何获取PostgreSQL数据库中的JSON值postgreSQL数据库的监控及数据维护操作PostgreSQL数据库中匿名块的写法实例SpringBoot连接使用PostgreSql数据库的方法PostgreSql 导入导出sql文件格式的表数据实例PostgreSQL upsert(插入更新)数据的操作详解使用postgresql 模拟批量数据插入的案例

  • 本文相关:
  • 深入理解postgresql的mvcc并发处理方式
  • 基于postgresql 权限解读
  • linux centos 7源码编译安装postgresql9.5
  • postgresql中关闭死锁进程的方法
  • postgresql 实现distinct关键字给单独的几列去重
  • 解决sqoop从postgresql拉数据,报错tcp/ip连接的问题
  • postgressql 多表关联删除语句的操作
  • phppgadmin 常见错误和问题的解决办法
  • postgresql中调用存储过程并返回数据集实例
  • postgresql排序与limit组合场景性能极限优化详解
  • postgresql中怎么用psql命令
  • 如何查看postgresql数据库用户
  • windoes下postgreSQL 第一次打开需要的口令是什么
  • 如何用命令打开postgresql数据库
  • 如何查询postgreSQL 里面某个数据库中所有用户定义...
  • 查看postgres数据库有哪些用户
  • 如何实现Postgresql数据库的重装与postgres密码重置
  • 求postgreSQL 的数据库的表数据,导入导出的sql语...
  • 如何初始化postgresql,创建用户gisuser,数据库gi...
  • postgresql数据库用什么命令执行脚本文件
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页postgresql修改完端口后直接psql连接数据库报错的解决postgresql数据库安装部署搭建主从节点的详细过程(业务库)如何获取postgresql数据库中的json值postgresql数据库的监控及数据维护操作postgresql数据库中匿名块的写法实例springboot连接使用postgresql数据库的方法postgresql 导入导出sql文件格式的表数据实例postgresql upsert(插入更新)数据的操作详解使用postgresql 模拟批量数据插入的案例深入理解postgresql的mvcc并发处理方式基于postgresql 权限解读linux centos 7源码编译安装postgresql9.5postgresql中关闭死锁进程的方法postgresql 实现distinct关键字给单独的几列去重解决sqoop从postgresql拉数据,报错tcp/ip连接的问题postgressql 多表关联删除语句的操作phppgadmin 常见错误和问题的解决办法postgresql中调用存储过程并返回数据集实例postgresql排序与limit组合场景性能极限优化详解postgresql 角色与用户管理介绍windows下postgresql数据库的下载windows下postgresql安装图解15个postgresql数据库实用命令分postgresql中的oid和xid 说明postgresql alter语句常用操作小windows postgresql 安装图文教程postgresql 安装和简单使用postgresql 创建表分区postgresql新手入门教程postgresql通过索引优化查询速度操作postgresql 实现列转行问题postgresql 跨库同步表及postgres_fdw的用postgresql时间线(timeline)和history fipostgresql中enable、disable和validate外postgresql查询效率计算初探解决postgresql服务启动后占用100% cpu卡使用postgresql 实现快速插入测试数据在postgresql数据库中判断是否是数字和日在postgresql数据库中创建只读用户的操作
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved