美文网首页
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