pg库角色管理

pg库角色管理

1.创建一个用户"user1",需要在具有’Create role’用户环境下执行

 mydb=# create user user1;

1.1 shell命令行创建用户’user2’

 [user1@localhost ~]$ createuser -U postgresql user2

2.以’user1’登入数据库

[postgresql@localhost data]$ psql -h 192.168.1.200 -U user1 mydb

以上方法创建的用户有LOGGIN权限,但是对数据库没有权限,可以切换数据库
并且可以查看所在数据下的表,但是无法操作表中数据

2.1 对表的查询

     mydb=> select * from userinfo;
     ERROR:  permission denied for relation userinfo

2.2 对标的写入

     mydb=> insert into userinfo values(1,'tom');
     ERROR:  permission denied for relation userinfo

3.创建一个带密码的用户’user3’

  mydb=# create user user3 with password '123456';

3.1 修改user3的登入认证方式(pg_hba.conf)

      host    mydb            user3             192.168.1.0/24            md5
      host    all             all             192.168.1.0/24            trust
      注:以上两条配置,md5加密认证所在行必须在上面,应为匹配为从上至下匹配,匹配即截止

3.2 刷新配置

      [postgresql@localhost data]$ pg_ctl reload -D /data/psql/data/
      server signaled

3.3 验证,以’user3’登入需要输入密码

      [postgresql@localhost data]$ psql -h 192.168.1.200 -U user3 mydb                                               
      Password for user user3:                                        
      psql (10.0)                                                     
      Type "help" for help.                                           
                                                                
      mydb=>

3.4 口令认证方式有:scram-sha-256,md5,password(名文发送密码)

4. pg库角色创建的另一种方式

   mydb=# create role user4;:此命令创建的角色没有的登入权限
      [postgresql@localhost data]$ psql -h 192.168.1.200 -U user4 mydb                            
      psql: FATAL:  role "user4" is not permitted to log in

4.1 此方法创建角色需要显示给用户权限

      mydb=# create role user5 login    
      验证:
          [postgresql@localhost data]$ psql -h 192.168.1.200 -U user5 mydb
          psql (10.0)                                                     
          Type "help" for help.                                           
                                                               
          mydb=>

5. pg库删除用户

5.1 查看现有用户

       mydb=# \du                                                                           
                                              List of roles                                    
       Role name  |                         Attributes                         | Member of                                                           
      ------------+------------------------------------------------------------+-----------
       postgresql | Superuser, Create role, Create DB, Replication, Bypass RLS | {}        
       user1      |                                                            | {}        
       user2      |                                                            | {}        
       user3      |                                                            | {}        
       user4      | Cannot login                                               | {}        
       user5      |                                                            | {}        

5.2 删除’user4’

       mydb=# drop user user4;
       mydb=# \du                                                                           
                                           List of roles                                    
        Role name  |                         Attributes                         | Member of 
       ------------+------------------------------------------------------------+-----------
        postgresql | Superuser, Create role, Create DB, Replication, Bypass RLS | {}        
        user1      |                                                            | {}        
        user2      |                                                            | {}        
        user3      |                                                            | {}        
        user5      |                                                            | {}   
        注:drop user username 与 drop role username 是一样的;此外与命令行提供createuser一样,也提供dropuser

6. pg库角色属性

login:登入权限
supperuser:超级用户,特点是除了登入权限,会绕开权限检查
createdb:创建数据库权限
createrole:创建角色权限
replication:发起复制流权限
password:设置密码,需要与pg_hba.conf规则共同作用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL的系统配置和参数设置分为几个方面。其中,通过参数文件配置是一种常见的设置方式。可以通过更改文件postgresql.conf来配置参数,这些参数提供了默认值。使用pg_ctl reload命令可以使服务器重新读取配置文件。通过查询pg_FILE_settings视图可以查看参数文件中配置的参数。例如,可以使用以下命令查询max_connections参数的配置: SELECT * FROM pg_FILE_settings WHERE name='max_connections'; 此外,还可以在数据角色级别设置全局默认值或附加重写。另外,还可以通过shell工具将参数设置传递给PostgreSQL服务器和客户端。在服务器启动过程中,可以使用-c命令行参数将参数设置传递给postgres命令。而在使用libpq启动客户端会话时,可以使用PGOPSOPTIONS环境变量指定参数设置。这些设置会成为会话生存期的默认值,但不会影响其他会话。 此外,PostgreSQL还有两个重要的全局配置文件:postgresql.conf和pg_hba.conf。这两个文件位于初始化数据目录中。其中,postgresql.conf负责配置文件位置、资源限制、集群复制等;而pg_hba.conf负责客户端的连接和认证。 综上所述,PostgreSQL的系统配置和参数设置可以通过参数文件配置、数据角色级别设置、shell工具传递参数以及全局配置文件进行管理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Postgresql服务器配置-设置参数](https://blog.csdn.net/weixin_34038293/article/details/89551549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [PostgreSQL数据管理 第四章数据参数配置](https://blog.csdn.net/syjhct/article/details/104743053)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值