圈子推荐
查看所有吧>>
活跃用户
    vastbase 用户、角色、权限管理

    vastbase  用户、角色、权限管理


    1、角色

    vastbase数据库使用角色的概念管理数据库访问权限。

    根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或者一组数据库用户。

    角色可以拥有数据库对象(比如表)以及可以把这些对象上的权限赋予其它角色, 以控制谁拥有访问哪些对象的权限。

    操作角色的语句:

    2、角色的权限

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

    比如:创建一个用户db_user1,并赋予它角色

    vastbase=# 

    vastbase=# 

    vastbase=# create user db_user1  password 'Test@123456';

    CREATE ROLE

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of 

    ----------------------+----------------------------------------------------------------------------------------+-----------

     db_user1             |                                                                                        | {}

       

    可以看出新创建的用户没有角色权限。接下来我们创建一个角色db_user2,看看角色本身都有哪些权限。

    vastbase=# create role db_user2 password 'tEst@123456';

    CREATE ROLE

    vastbase=# 

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of 

    ----------------------+----------------------------------------------------------------------------------------+-----------

     db_user1             |                                                                                        | {}

     db_user2             | Cannot login                                                                           | {}

                                                           | {}

     可以看出角色在创建成功后是没有登录权限的。因此在创建角色后要给一个基本的登录权限login

     vastbase=# alter user db_user2  login;

     3、给用户db_user1授权createdb、createrole角色

    vastbase=# alter user db_user1 createdb createrole;

    ALTER ROLE

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of 

    ----------------------+----------------------------------------------------------------------------------------+-----------

     db_user1             | Create role, Create DB                                                                 | {}

     db_user2             |                                                                                        | {}

    4、给角色db_user2授权Replication、Sysadmin角色

    vastbase=# alter user db_user2  Replication  Sysadmin;

    ALTER ROLE

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of 

    ----------------------+----------------------------------------------------------------------------------------+-----------

     db_user1             | Create role, Create DB                                                                 | {}

     db_user2             | Replication, Sysadmin                                                                  | {}

    5、回收角色db_user2

    vastbase=# alter user db_user2  nosysadmin  noreplication;

    ALTER ROLE

    vastbase=# 

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of 

    ----------------------+----------------------------------------------------------------------------------------+-----------

     db_user1             | Create role, Create DB                                                                 | {}

     db_user2             |                                                                                        | {}

    6、删除用户角色

    vastbase=# drop user db_user1;

    DROP ROLE

    vastbase=# drop role  db_user2;

    DROP ROLE

    因此可以简单认为用户和角色都是角色,只是用户是具有登录权限的角色。

    7、赋予角色控制权限

    首先新建用户db_user1,db_user2。我们可以使用GRANT 和REVOKE命令赋予用户角色,来控制权限。

    vastbase=# create user db_user1 identified by 'Aa@123456';

    CREATE ROLE

    vastbase=# 

    vastbase=# create user  db_user2  identified by 'aA@123456';

    CREATE ROLE

    vastbase=# 

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of 

    ----------------------+----------------------------------------------------------------------------------------+-----------

     db_user1             |                                                                                        | {}

     db_user2             |                                                                                        | {}                                                         | {}

    --创建一个角色db_role1并给他createdb createrole角色                       ^

    vastbase=# create role db_role1 password  'Test@123456' createdb createrole;

    CREATE ROLE

    vastbase=# 

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of 

    ----------------------+----------------------------------------------------------------------------------------+-----------

     db_role1             | Create role, Create DB, Cannot login                                                   | {}

     db_user1             |                                                                                        | {}

     db_user2             |                                                                                        | {}                                                          | {}

    --给用户1,2赋予角色1,两个用户就拥有了创建数据库和创建角色的权限

    vastbase=# grant db_role1 to db_user1,db_user2;

    GRANT ROLE

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of  

    ----------------------+----------------------------------------------------------------------------------------+------------

     db_role1             | Create role, Create DB, Cannot login                                                   | {}

     db_user1             |                                                                                        | {db_role1}

     db_user2             |                                                                                        | {db_role1}                                                         | {}

    可以看到用户已经有了db_role1的角色权限。

    --从用户1移除角色1,用户不在拥有角色1的权限

    vastbase=# revoke db_role1 from db_user1; 

    REVOKE ROLE

    vastbase=# du

                                                           List of roles

          Role name       |                                       Attributes                                       | Member of  

    ----------------------+----------------------------------------------------------------------------------------+------------

     db_role1             | Create role, Create DB, Cannot login                                                   | {}

     db_user1             |                                                                                        | {}

     db_user2     


    • 分享到:
    排序方式:回复时间 共有1条评论

    不用管我 发表于 02月25日 10:20 1 楼

    请问和postgres11的用户对象有什么区别

    | 回复