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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值