南大通用数仓-GCDW-学习-03-用户管理

目录

一、环境信息

二、概念

三、用户相关系统表

1、CLOUD.USER

(1)字段解释

(2)示例

 2、CLOUD.USER_CHECK 

(1)字段解释

(2)示例

四、实操

1、新建用户

(1)语法

(2)示例

2、修改用户密码

(1)语法

(2)示例

3、设置用户默认角色

(1)语法

(2)示例

4、设置用户默认 warehouse

(1)语法

(2)示例

5、重命名用户

(1)语法

(2)示例

6、启用和禁用用户

(1)语法

(2)示例

7、用户切换角色

(1)语法

(2)示例

8、查看用户信息

(1)示例

9、显示当前会话连接的用户名称

(1)示例

10、删除用户

(1)语法

(2)示例

11、查看当前用户拥有的权限

(1)语法

(2)示例


一、环境信息

名称
CPUIntel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz
操作系统CentOS Linux release 7.9.2009 (Core)
内存4G
逻辑核数4
GCDW版本9.8.0.6.17
集群节点1IP192.168.142.10

二、概念

GCDW的账户管理系统由角色、用户、权限组成。

编号描述
1用户通过角色与权限进行关联。权限赋予角色,一个角色对应一组权限,用户通过成为角色的成员而得到这些角色的权限(用户自身不带权限属性)。
2一个用户可以拥有若干角色,每一个角色拥有若干权限。用户选择自身拥有的某个角色创建会话,该会话中用户只具有这个选定角色的权限,不具有自身的其他角色权限。
3角色有继承关系。父角色具有其所有子角色的权限,如果给某个角色赋予某项权限,则该角色的所有父角色同时具有该权限;相应的某个角色的权限被取消时,通过该角色得到的这项权限的父角色也会被取消这项权限。
4用户以某个角色创建了数据库对象,该角色就是这个数据库对象的拥有者(OWNER)。该角色(OWNER)具有这个数据库对象的所有权限,即该角色的所有用户都具有这个数据库对象的所有操作权限,包括转赠这个数据库对象所有者的权限。

三、用户相关系统表

1、CLOUD.USER

(1)字段解释

序号列名描述
1user用户名
2password用户密码
3plugin插件
4auth_string用户认证方式
5create_time用户的创建时间
6last_login_time用户最近的访问时间
7grant_role用户被授予的角色
8switch_role用户可以切换的角色
9default_role用户的默认角色
10default_warehouse用户的默认 warehouse 
11uid用户 id
12owner用户的拥有者(默认为创建者) 
13ssl_typessl(Secure Socket Layer)类型
14ssl_cipherssl 密码
15x509_issuerssl 加密证书颁发者
16x509_subjectssl 加密证书的主体名称
17max_questions已知的用户最大并发查询数
18max_updates已知的用户最大并发 update 数
19max_connections已知的用户最大并发连接数
20max_user_connections支持的用户最大并发连接数
21max_cpus已知的用户最大 CPU 使用率(时间分片)
22max_memories已知的用户最大内存使用空间
23max_tmp_space已知的用户最大临时空间使用容量
24resource_group用户的资源组
25task_priority用户的任务优先级
26user_limit_storage_size用户的空间容量使用限制
27user_storage_size当前用户使用的空间大小
28comment注释信息

(2)示例

gbase> SELECT * FROM CLOUD.USER WHERE USER = 'root' \G;
*************************** 1. row ***************************
                   user: root
               password: *D75CC763C5551A420D28A227AC294FADE26A2FF2
                 plugin: gbase_native_password
            auth_string: 
            create_time: NULL
        last_login_time: NULL
             grant_role: accountadmin
            switch_role: accountadmin,systemadmin,publicadmin
           default_role: accountadmin
      default_warehouse: 
                    uid: 4
                  owner: accountadmin
               ssl_type: 
             ssl_cipher: 
            x509_issuer: 
           x509_subject: 
          max_questions: 0
            max_updates: 0
        max_connections: 0
   max_user_connections: 0
               max_cpus: 0
           max_memories: 0
          max_tmp_space: 0
         resource_group: 0
          task_priority: 2
user_limit_storage_size: 
      user_storage_size: 0
                comment: 
1 row in set (Elapsed: 00:00:00.06)

ERROR: 
No query specified

 2、CLOUD.USER_CHECK 

(1)字段解释

序号列名描述
1user用户名
2attempt登录密码错误重试限制的次数,超过次数用户被锁定
3last_attempt最近登录的重试次数
4locked用户是否被锁定
5password_expired密码当前是否过期
6password_last_changed最近一次更改密码的时间
7password_life_time密码的有效期管理策略,正整数表示还有多少天后必须更改密码
8password_history用户的历史密码
9login_time用户当前的登录时间
10last_login_time最近的用户登录时间
11login_count用户的登录次数

(2)示例

gbase> SELECT * FROM CLOUD.USER_CHECK WHERE USER = 'root'\G;
*************************** 1. row ***************************
                 user: root
              attempt: 0
         last_attempt: 0
               locked: N
     password_expired: N
password_last_changed: NULL
   password_life_time: NULL
     password_history: *D75CC763C5551A420D28A227AC294FADE26A2FF2
           login_time: 2024-07-15 14:04:47
      last_login_time: 2024-07-15 10:46:03
          login_count: 6
1 row in set (Elapsed: 00:00:00.03)

ERROR: 
No query specified

四、实操

1、新建用户

(1)语法

CREATE USER username [auth_option] [lock_option] [expiration_option] [default_role]
[default_warehouse] [comment];
参数描述
username用户名
auth_option用户认证方式。可选参数。
identified by ’password’ [limit_storage_size=’’] limit_storage_size 是用户磁盘限额,在 sql 执行开始时进行检查用户当前磁盘使用是否超额,如果超额直接报错返回,执行过程中磁盘使用超额不检查不报错。参数值需为整数,单位可以是 K、M、G。如:limit_storage_size=1M
lock _option是否锁定账户。可选参数。
expiration_option密码过期策略。控制密码的有效期,达到有效期后用户密码自动过期。
用户密码过期后,允许用户登录,在执行 SQL 时提示用户修改密码。
此时允许用户修改自己的密码。必须修改密码后才允许执行其它 SQL。
为可选参数。默认为永不过期。
password expire 立即过期
password expire never 永不过期
password expire interval N day 密码过期的时间间隔为 N 天。
即设置了密码后 N 天该密码过期,需要设置新的密码。
default_role默认角色,如不填写默认为系统角色 publicadmin。可选参数,建议填写。如,default_role=’role_name’。
default_warehouse用户默认关联的 warehouse。可选参数。如,default_warehouse=’warehouse name’ 
comment注释信息

(2)示例

gbase> CREATE USER ZXJ 
    ->  IDENTIFIED BY 'qwer1234' 
    ->  DEFAULT_WAREHOUSE='WH_CZG'
    ->  DEFAULT_ROLE='accountadmin'
    ->  COMMENT 'SUN';
Query OK, 0 rows affected (Elapsed: 00:00:00.08)


gbase> CREATE USER LXG 
    ->  IDENTIFIED BY 'qwer1234' 
    ->  LIMIT_STORAGE_SIZE = 100G
    ->  ACCOUNT UNLOCK
    ->  PASSWORD EXPIRE NEVER
    ->  COMMENT 'SUN';
Query OK, 0 rows affected (Elapsed: 00:00:00.08)

我发现上面有些属性不能共用,可能是我用法的问题。

2、修改用户密码

(1)语法

SET PASSWORD [FOR user] = PASSWORD('newpassword');

(2)示例

gbase> SET PASSWORD FOR ZXJ = PASSWORD('haha');
Query OK, 0 rows affected (Elapsed: 00:00:00.09)

gbase> ALTER USER ZXJ IDENTIFIED BY 'qwer1234';                                                                                     
Query OK, 0 rows affected (Elapsed: 00:00:00.11)

3、设置用户默认角色

(1)语法

ALTER USER username DEFAULT_ROLE=’role_name’;

(2)示例

gbase> ALTER USER ZXJ DEFAULT_ROLE='systemadmin';
Query OK, 0 rows affected (Elapsed: 00:00:00.09)

4、设置用户默认 warehouse

设置用户默认的 warehouse 必须是当前已经存在的 warehouse。

设置用户默认 warehouse 不涉及用户的 warehouse 相关权限:

1.用户没有该 warehouse 的任何权限也可以将该 warehouse 设置为该用户的默认 warehouse。

2.设置用户默认 warehouse 成功后,不代表用户获取了该 warehouse 的使用权限, 用户需要另外被赋予该 warehouse 的相应权限才能正常使用该 warehouse。 修改用户的默认 warehouse 并不会引起已有 session 当前使用的 warehouse,但是会影 响新 session 做计算时选用的 warehouse.

(1)语法

ALTER USER username default_warehouse=’wh_name’;

(2)示例

gbase> ALTER USER ZXJ DEFAULT_WAREHOUSE='wh_czg';
Query OK, 0 rows affected (Elapsed: 00:00:00.07)

5、重命名用户

(1)语法

RENAME USER <oldusername> TO <newusername>;

(2)示例

gbase> RENAME USER ZXJ TO CLX;
Query OK, 0 rows affected (Elapsed: 00:00:00.05)

6、启用和禁用用户

(1)语法

ALTER USER <username> ACCOUNT LOCK | ACCOUNT UNLOCK;

(2)示例

gbase> ALTER USER CLX ACCOUNT LOCK;
Query OK, 0 rows affected (Elapsed: 00:00:00.05)

gbase> ALTER USER CLX ACCOUNT UNLOCK;
Query OK, 0 rows affected (Elapsed: 00:00:00.05)

7、用户切换角色

(1)语法

USE ROLE <rolename> ;

(2)示例

gbase> USE ROLE accountadmin;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

8、查看用户信息

(1)示例

gbase> SHOW USERS;
+-------+
| User  |
+-------+
| root  |
| gbase |
| CZG   |
| CLX   |
| LXG   |
+-------+
5 rows in set (Elapsed: 00:00:00.09)

9、显示当前会话连接的用户名称

(1)示例

gbase> SELECT USER();
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (Elapsed: 00:00:00.00)

10、删除用户

(1)语法

DROP USER <username>;

(2)示例

gbase> DROP USER CLX;
Query OK, 0 rows affected (Elapsed: 00:00:00.17)

11、查看当前用户拥有的权限

(1)语法

show grants;

(2)示例

gbase> show grants;            
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for role_exam@%                                                                                                                                                          |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT CREATE, RELOAD, PROCESS, SHOW DATABASES, OPERATE_WAREHOUSE, CREATE_FILE_FORMAT, CREATE_STAGE, STAGE_READ, STAGE_WRITE, FILE_FORMAT_USAGE ON *.*.* TO ROLE 'role_exam'@'%' |
| GRANT ALL PRIVILEGES ON "vc00001"."ssbm".* TO ROLE 'role_exam'@'%'                                                                                                              |
| GRANT "publicadmin" TO ROLE "role_exam"                                                                                                                                         |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3 rows in set (Elapsed: 00:00:00.01)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值