美文网首页
01-postgresql允许外部访问

01-postgresql允许外部访问

作者: wshsdm | 来源:发表于2022-03-31 10:48 被阅读0次

1 CenterOS7设置PG允许外部访问

1.1 修改对应配置文件

  • 修改/var/lib/pgsql/14/data/pg_hba.conf文件,在文件最后追加
host all all 0.0.0.0/0 md5
  • 修改/var/lib/pgsql/14/data/postgresql.conf文件
listen_addresses = '*' # what IP address(es) to listen on

1.2 重启PG服务

systemctl restart postgresql-14

2 修改默认postgre用户名对应的密码

  • 在shell输入命令,进入切换至postgres用户命令行
su postgres
  • 在PG命令行下bash-4.2$ 输入如下登入默认数据库命令行
psql postgres

注:以上两条命令可以简化如下命令:

sudo -u postgres psql postgres
  • 在PG命令交互窗口postgres=#输入修改对应用户名postgre密码命令
\password postgres

注意修改两遍密码信息

3 用户、角色、权限

3.1 角色

PostgreSQL使用角色的概念管理数据库访问权限。 根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或者一组数据库用户。 角色可以拥有数据库对象(比如表)以及可以把这些对象上的权限赋予其它角色, 以控制谁拥有访问哪些对象的权限。
操作角色的语句:

create role db_role1; /--创建角色/
drop role db_role1; /--删除角色/
select rolename from pg_roles; /--查看所有角色/
/du --在命令格式下查看所有角色的命令

3.2 角色权限

一个数据库角色可以有很多权限,这些权限定义了角色和拥有角色的用户可以做的事情。

create role db_role1 LOGIN; --创建具有登录权限的角色db_role1
create role db_role2 SUPERUSER; --创建具有超级用户权限的角色
create role db_role3 CREATEDB; --创建具有创建数据库权限的角色
create role db_role4 CREATEROLE --创建具有创建角色权限的角色
alter role db_role1 nologin nocreatedb; --修改角色取消登录和创建数据库权限

3.3 用户

其实用户和角色都是角色,只是用户是具有登录权限的角色。

create user db_user1 password '123'; --创建用户
create role db_user1 password '123' LOGIN; --同上一句等价
drop user db_user1; --删除用户
alter user db_user1 password '123456'; --修改密码
alter user db_user1 createdb createrole; --对用户授权

3.4 角色赋予权限

使用GRANT 和REVOKE命令赋予用户角色,来控制权限。

create user db_user1; --创建用户1
create user db_user2; --创建用户2
create role db_role1 createdb createrole; --创建角色1
grant db_role1 to db_user1,db_user2; --给用户1,2赋予角色1,两个用户就拥有了创建数据库和创建角色的权限
revoke db_role1 from db_user1; --从用户1移除角色1,用户不在拥有角色1的权限

4 PG提示客户端太多了

  • 运行这个SQL来查看允许的postgresql max连接:
 show max_connections; 
  • 看看究竟是谁/什么/什么时候/在哪里举行打开你的连接
SELECT * FROM pg_stat_activity; 
  • postgresql.conf中的max_connections设置数据库服务器的最大并发连接数。
  1. 首先find你的postgresql.conf文件
  2. 如果你不知道它在哪里,用sql: SHOW config_file;查询数据库SHOW config_file;
  3. 我在: /var/lib/pgsql/data/postgresql.conf
  4. 以root身份login并编辑该文件。
    searchstring:“max_connections”。
    你会看到一行说max_connections=100 。
    设置这个数字更大,检查你的postgresql版本的限制。
  5. 重新启动postgresql数据库以使更改生效。
  • 查看最大的max_connections
select min_val, max_val from pg_settings where name='max_connections'; 

相关文章

网友评论

      本文标题:01-postgresql允许外部访问

      本文链接:https://www.haomeiwen.com/subject/lfngjrtx.html