25-grant.md 3.7 KB
Newer Older
1 2 3
---
sidebar_label: 权限管理
title: 权限管理
4
description: 企业版中才具有的权限管理功能
5 6 7 8 9 10 11
---

本节讲述如何在 TDengine 中进行权限管理的相关操作。

## 创建用户

```sql
X
Xiaoyu Wang 已提交
12
CREATE USER use_name PASS 'password' [SYSINFO {1|0}];
13 14 15 16
```

创建用户。

X
Xiaoyu Wang 已提交
17
use_name 最长为 23 字节。
18

D
dmchen 已提交
19
password 最长为 32 字节,合法字符包括"a-zA-Z0-9!?$%^&*()_–+={[}]:;@~#|<,>.?/",不可以出现单双引号、撇号、反斜杠和空格,且不可以为空。
X
Xiaoyu Wang 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

SYSINFO 表示用户是否可以查看系统信息。1 表示可以查看,0 表示不可以查看。系统信息包括服务端配置信息、服务端各种节点信息(如 DNODE、QNODE等)、存储相关的信息等。默认为可以查看系统信息。

例如,创建密码为123456且可以查看系统信息的用户test如下:

```sql
taos> create user test pass '123456' sysinfo 1;
Query OK, 0 of 0 rows affected (0.001254s)
```

## 查看用户

```sql
SHOW USERS;
```

查看用户信息。

```sql
taos> show users;
           name           | super | enable | sysinfo |       create_time       |
================================================================================
 test                     |     0 |      1 |       1 | 2022-08-29 15:10:27.315 |
 root                     |     1 |      1 |       1 | 2022-08-29 15:03:34.710 |
Query OK, 2 rows in database (0.001657s)
```

也可以通过查询INFORMATION_SCHEMA.INS_USERS系统表来查看用户信息,例如:

```sql
taos> select * from information_schema.ins_users;
           name           | super | enable | sysinfo |       create_time       |
================================================================================
 test                     |     0 |      1 |       1 | 2022-08-29 15:10:27.315 |
 root                     |     1 |      1 |       1 | 2022-08-29 15:03:34.710 |
Query OK, 2 rows in database (0.001953s)
```
57 58 59 60 61 62 63

## 删除用户

```sql
DROP USER user_name;
```

G
gccgdb1234 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76
## 修改用户信息

```sql
ALTER USER user_name alter_user_clause
 
alter_user_clause: {
    PASS 'literal'
  | ENABLE value
  | SYSINFO value
}
```

- PASS:修改用户密码。
X
Xiaoyu Wang 已提交
77 78 79 80
- ENABLE:修改用户是否启用。1 表示启用此用户,0 表示禁用此用户。
- SYSINFO:修改用户是否可查看系统信息。1 表示可以查看系统信息,0 表示不可以查看系统信息。

例如,禁用 test 用户:
G
gccgdb1234 已提交
81

X
Xiaoyu Wang 已提交
82 83 84 85
```sql
taos> alter user test enable 0;
Query OK, 0 of 0 rows affected (0.001160s)
```
G
gccgdb1234 已提交
86

87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
## 授权

```sql
GRANT privileges ON priv_level TO user_name
 
privileges : {
    ALL
  | priv_type [, priv_type] ...
}
 
priv_type : {
    READ
  | WRITE
}
 
priv_level : {
    dbname.*
  | *.*
}
```

X
Xiaoyu Wang 已提交
108
对用户授权。授权功能只包含在企业版中。
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

授权级别支持到DATABASE,权限有READ和WRITE两种。

TDengine 有超级用户和普通用户两类用户。超级用户缺省创建为root,拥有所有权限。使用超级用户创建出来的用户为普通用户。在未授权的情况下,普通用户可以创建DATABASE,并拥有自己创建的DATABASE的所有权限,包括删除数据库、修改数据库、查询时序数据和写入时序数据。超级用户可以给普通用户授予其他DATABASE的读写权限,使其可以在此DATABASE上读写数据,但不能对其进行删除和修改数据库的操作。

对于非DATABASE的对象,如USER、DNODE、UDF、QNODE等,普通用户只有读权限(一般为SHOW命令),不能创建和修改。

## 撤销授权

```sql
REVOKE privileges ON priv_level FROM user_name
 
privileges : {
    ALL
  | priv_type [, priv_type] ...
}
 
priv_type : {
    READ
  | WRITE
}
 
priv_level : {
    dbname.*
  | *.*
}

```

X
Xiaoyu Wang 已提交
138
收回对用户的授权。授权功能只包含在企业版中。