enh: createdb permission for users
This commit is contained in:
parent
009e432f2e
commit
0ef202a56b
|
@ -189,6 +189,7 @@ typedef enum _mgmt_table {
|
|||
#define TSDB_ALTER_USER_DEL_PRIVILEGES 0x6
|
||||
#define TSDB_ALTER_USER_ADD_WHITE_LIST 0x7
|
||||
#define TSDB_ALTER_USER_DROP_WHITE_LIST 0x8
|
||||
#define TSDB_ALTER_USER_CREATEDB 0x9
|
||||
|
||||
#define TSDB_KILL_MSG_LEN 30
|
||||
|
||||
|
@ -1043,11 +1044,18 @@ int32_t tSerializeRetrieveIpWhite(void* buf, int32_t bufLen, SRetrieveIpWhiteReq
|
|||
int32_t tDeserializeRetrieveIpWhite(void* buf, int32_t bufLen, SRetrieveIpWhiteReq* pReq);
|
||||
|
||||
typedef struct {
|
||||
int8_t alterType;
|
||||
int8_t superUser;
|
||||
int8_t sysInfo;
|
||||
int8_t enable;
|
||||
int8_t isView;
|
||||
int8_t alterType;
|
||||
int8_t superUser;
|
||||
int8_t sysInfo;
|
||||
int8_t enable;
|
||||
int8_t isView;
|
||||
union {
|
||||
int8_t flag;
|
||||
struct {
|
||||
int8_t createdb : 1;
|
||||
int8_t reserve : 7;
|
||||
};
|
||||
};
|
||||
char user[TSDB_USER_LEN];
|
||||
char pass[TSDB_USET_PASSWORD_LEN];
|
||||
char objname[TSDB_DB_FNAME_LEN]; // db or topic
|
||||
|
|
|
@ -54,343 +54,344 @@
|
|||
#define TK_ENABLE 36
|
||||
#define TK_NK_INTEGER 37
|
||||
#define TK_SYSINFO 38
|
||||
#define TK_ADD 39
|
||||
#define TK_DROP 40
|
||||
#define TK_GRANT 41
|
||||
#define TK_ON 42
|
||||
#define TK_TO 43
|
||||
#define TK_REVOKE 44
|
||||
#define TK_FROM 45
|
||||
#define TK_SUBSCRIBE 46
|
||||
#define TK_READ 47
|
||||
#define TK_WRITE 48
|
||||
#define TK_NK_DOT 49
|
||||
#define TK_WITH 50
|
||||
#define TK_ENCRYPT_KEY 51
|
||||
#define TK_DNODE 52
|
||||
#define TK_PORT 53
|
||||
#define TK_DNODES 54
|
||||
#define TK_RESTORE 55
|
||||
#define TK_NK_IPTOKEN 56
|
||||
#define TK_FORCE 57
|
||||
#define TK_UNSAFE 58
|
||||
#define TK_CLUSTER 59
|
||||
#define TK_LOCAL 60
|
||||
#define TK_QNODE 61
|
||||
#define TK_BNODE 62
|
||||
#define TK_SNODE 63
|
||||
#define TK_MNODE 64
|
||||
#define TK_VNODE 65
|
||||
#define TK_DATABASE 66
|
||||
#define TK_USE 67
|
||||
#define TK_FLUSH 68
|
||||
#define TK_TRIM 69
|
||||
#define TK_S3MIGRATE 70
|
||||
#define TK_COMPACT 71
|
||||
#define TK_IF 72
|
||||
#define TK_NOT 73
|
||||
#define TK_EXISTS 74
|
||||
#define TK_BUFFER 75
|
||||
#define TK_CACHEMODEL 76
|
||||
#define TK_CACHESIZE 77
|
||||
#define TK_COMP 78
|
||||
#define TK_DURATION 79
|
||||
#define TK_NK_VARIABLE 80
|
||||
#define TK_MAXROWS 81
|
||||
#define TK_MINROWS 82
|
||||
#define TK_KEEP 83
|
||||
#define TK_PAGES 84
|
||||
#define TK_PAGESIZE 85
|
||||
#define TK_TSDB_PAGESIZE 86
|
||||
#define TK_PRECISION 87
|
||||
#define TK_REPLICA 88
|
||||
#define TK_VGROUPS 89
|
||||
#define TK_SINGLE_STABLE 90
|
||||
#define TK_RETENTIONS 91
|
||||
#define TK_SCHEMALESS 92
|
||||
#define TK_WAL_LEVEL 93
|
||||
#define TK_WAL_FSYNC_PERIOD 94
|
||||
#define TK_WAL_RETENTION_PERIOD 95
|
||||
#define TK_WAL_RETENTION_SIZE 96
|
||||
#define TK_WAL_ROLL_PERIOD 97
|
||||
#define TK_WAL_SEGMENT_SIZE 98
|
||||
#define TK_STT_TRIGGER 99
|
||||
#define TK_TABLE_PREFIX 100
|
||||
#define TK_TABLE_SUFFIX 101
|
||||
#define TK_S3_CHUNKSIZE 102
|
||||
#define TK_S3_KEEPLOCAL 103
|
||||
#define TK_S3_COMPACT 104
|
||||
#define TK_KEEP_TIME_OFFSET 105
|
||||
#define TK_ENCRYPT_ALGORITHM 106
|
||||
#define TK_NK_COLON 107
|
||||
#define TK_BWLIMIT 108
|
||||
#define TK_START 109
|
||||
#define TK_TIMESTAMP 110
|
||||
#define TK_END 111
|
||||
#define TK_TABLE 112
|
||||
#define TK_NK_LP 113
|
||||
#define TK_NK_RP 114
|
||||
#define TK_STABLE 115
|
||||
#define TK_COLUMN 116
|
||||
#define TK_MODIFY 117
|
||||
#define TK_RENAME 118
|
||||
#define TK_TAG 119
|
||||
#define TK_SET 120
|
||||
#define TK_NK_EQ 121
|
||||
#define TK_USING 122
|
||||
#define TK_TAGS 123
|
||||
#define TK_BOOL 124
|
||||
#define TK_TINYINT 125
|
||||
#define TK_SMALLINT 126
|
||||
#define TK_INT 127
|
||||
#define TK_INTEGER 128
|
||||
#define TK_BIGINT 129
|
||||
#define TK_FLOAT 130
|
||||
#define TK_DOUBLE 131
|
||||
#define TK_BINARY 132
|
||||
#define TK_NCHAR 133
|
||||
#define TK_UNSIGNED 134
|
||||
#define TK_JSON 135
|
||||
#define TK_VARCHAR 136
|
||||
#define TK_MEDIUMBLOB 137
|
||||
#define TK_BLOB 138
|
||||
#define TK_VARBINARY 139
|
||||
#define TK_GEOMETRY 140
|
||||
#define TK_DECIMAL 141
|
||||
#define TK_COMMENT 142
|
||||
#define TK_MAX_DELAY 143
|
||||
#define TK_WATERMARK 144
|
||||
#define TK_ROLLUP 145
|
||||
#define TK_TTL 146
|
||||
#define TK_SMA 147
|
||||
#define TK_DELETE_MARK 148
|
||||
#define TK_FIRST 149
|
||||
#define TK_LAST 150
|
||||
#define TK_SHOW 151
|
||||
#define TK_PRIVILEGES 152
|
||||
#define TK_DATABASES 153
|
||||
#define TK_TABLES 154
|
||||
#define TK_STABLES 155
|
||||
#define TK_MNODES 156
|
||||
#define TK_QNODES 157
|
||||
#define TK_ARBGROUPS 158
|
||||
#define TK_FUNCTIONS 159
|
||||
#define TK_INDEXES 160
|
||||
#define TK_ACCOUNTS 161
|
||||
#define TK_APPS 162
|
||||
#define TK_CONNECTIONS 163
|
||||
#define TK_LICENCES 164
|
||||
#define TK_GRANTS 165
|
||||
#define TK_FULL 166
|
||||
#define TK_LOGS 167
|
||||
#define TK_MACHINES 168
|
||||
#define TK_ENCRYPTIONS 169
|
||||
#define TK_QUERIES 170
|
||||
#define TK_SCORES 171
|
||||
#define TK_TOPICS 172
|
||||
#define TK_VARIABLES 173
|
||||
#define TK_BNODES 174
|
||||
#define TK_SNODES 175
|
||||
#define TK_TRANSACTIONS 176
|
||||
#define TK_DISTRIBUTED 177
|
||||
#define TK_CONSUMERS 178
|
||||
#define TK_SUBSCRIPTIONS 179
|
||||
#define TK_VNODES 180
|
||||
#define TK_ALIVE 181
|
||||
#define TK_VIEWS 182
|
||||
#define TK_VIEW 183
|
||||
#define TK_COMPACTS 184
|
||||
#define TK_NORMAL 185
|
||||
#define TK_CHILD 186
|
||||
#define TK_LIKE 187
|
||||
#define TK_TBNAME 188
|
||||
#define TK_QTAGS 189
|
||||
#define TK_AS 190
|
||||
#define TK_SYSTEM 191
|
||||
#define TK_TSMA 192
|
||||
#define TK_INTERVAL 193
|
||||
#define TK_RECURSIVE 194
|
||||
#define TK_TSMAS 195
|
||||
#define TK_FUNCTION 196
|
||||
#define TK_INDEX 197
|
||||
#define TK_COUNT 198
|
||||
#define TK_LAST_ROW 199
|
||||
#define TK_META 200
|
||||
#define TK_ONLY 201
|
||||
#define TK_TOPIC 202
|
||||
#define TK_CONSUMER 203
|
||||
#define TK_GROUP 204
|
||||
#define TK_DESC 205
|
||||
#define TK_DESCRIBE 206
|
||||
#define TK_RESET 207
|
||||
#define TK_QUERY 208
|
||||
#define TK_CACHE 209
|
||||
#define TK_EXPLAIN 210
|
||||
#define TK_ANALYZE 211
|
||||
#define TK_VERBOSE 212
|
||||
#define TK_NK_BOOL 213
|
||||
#define TK_RATIO 214
|
||||
#define TK_NK_FLOAT 215
|
||||
#define TK_OUTPUTTYPE 216
|
||||
#define TK_AGGREGATE 217
|
||||
#define TK_BUFSIZE 218
|
||||
#define TK_LANGUAGE 219
|
||||
#define TK_REPLACE 220
|
||||
#define TK_STREAM 221
|
||||
#define TK_INTO 222
|
||||
#define TK_PAUSE 223
|
||||
#define TK_RESUME 224
|
||||
#define TK_PRIMARY 225
|
||||
#define TK_KEY 226
|
||||
#define TK_TRIGGER 227
|
||||
#define TK_AT_ONCE 228
|
||||
#define TK_WINDOW_CLOSE 229
|
||||
#define TK_IGNORE 230
|
||||
#define TK_EXPIRED 231
|
||||
#define TK_FILL_HISTORY 232
|
||||
#define TK_UPDATE 233
|
||||
#define TK_SUBTABLE 234
|
||||
#define TK_UNTREATED 235
|
||||
#define TK_KILL 236
|
||||
#define TK_CONNECTION 237
|
||||
#define TK_TRANSACTION 238
|
||||
#define TK_BALANCE 239
|
||||
#define TK_VGROUP 240
|
||||
#define TK_LEADER 241
|
||||
#define TK_MERGE 242
|
||||
#define TK_REDISTRIBUTE 243
|
||||
#define TK_SPLIT 244
|
||||
#define TK_DELETE 245
|
||||
#define TK_INSERT 246
|
||||
#define TK_NK_BIN 247
|
||||
#define TK_NK_HEX 248
|
||||
#define TK_NULL 249
|
||||
#define TK_NK_QUESTION 250
|
||||
#define TK_NK_ALIAS 251
|
||||
#define TK_NK_ARROW 252
|
||||
#define TK_ROWTS 253
|
||||
#define TK_QSTART 254
|
||||
#define TK_QEND 255
|
||||
#define TK_QDURATION 256
|
||||
#define TK_WSTART 257
|
||||
#define TK_WEND 258
|
||||
#define TK_WDURATION 259
|
||||
#define TK_IROWTS 260
|
||||
#define TK_ISFILLED 261
|
||||
#define TK_CAST 262
|
||||
#define TK_NOW 263
|
||||
#define TK_TODAY 264
|
||||
#define TK_TIMEZONE 265
|
||||
#define TK_CLIENT_VERSION 266
|
||||
#define TK_SERVER_VERSION 267
|
||||
#define TK_SERVER_STATUS 268
|
||||
#define TK_CURRENT_USER 269
|
||||
#define TK_CASE 270
|
||||
#define TK_WHEN 271
|
||||
#define TK_THEN 272
|
||||
#define TK_ELSE 273
|
||||
#define TK_BETWEEN 274
|
||||
#define TK_IS 275
|
||||
#define TK_NK_LT 276
|
||||
#define TK_NK_GT 277
|
||||
#define TK_NK_LE 278
|
||||
#define TK_NK_GE 279
|
||||
#define TK_NK_NE 280
|
||||
#define TK_MATCH 281
|
||||
#define TK_NMATCH 282
|
||||
#define TK_CONTAINS 283
|
||||
#define TK_IN 284
|
||||
#define TK_JOIN 285
|
||||
#define TK_INNER 286
|
||||
#define TK_LEFT 287
|
||||
#define TK_RIGHT 288
|
||||
#define TK_OUTER 289
|
||||
#define TK_SEMI 290
|
||||
#define TK_ANTI 291
|
||||
#define TK_ASOF 292
|
||||
#define TK_WINDOW 293
|
||||
#define TK_WINDOW_OFFSET 294
|
||||
#define TK_JLIMIT 295
|
||||
#define TK_SELECT 296
|
||||
#define TK_NK_HINT 297
|
||||
#define TK_DISTINCT 298
|
||||
#define TK_WHERE 299
|
||||
#define TK_PARTITION 300
|
||||
#define TK_BY 301
|
||||
#define TK_SESSION 302
|
||||
#define TK_STATE_WINDOW 303
|
||||
#define TK_EVENT_WINDOW 304
|
||||
#define TK_COUNT_WINDOW 305
|
||||
#define TK_SLIDING 306
|
||||
#define TK_FILL 307
|
||||
#define TK_VALUE 308
|
||||
#define TK_VALUE_F 309
|
||||
#define TK_NONE 310
|
||||
#define TK_PREV 311
|
||||
#define TK_NULL_F 312
|
||||
#define TK_LINEAR 313
|
||||
#define TK_NEXT 314
|
||||
#define TK_HAVING 315
|
||||
#define TK_RANGE 316
|
||||
#define TK_EVERY 317
|
||||
#define TK_ORDER 318
|
||||
#define TK_SLIMIT 319
|
||||
#define TK_SOFFSET 320
|
||||
#define TK_LIMIT 321
|
||||
#define TK_OFFSET 322
|
||||
#define TK_ASC 323
|
||||
#define TK_NULLS 324
|
||||
#define TK_ABORT 325
|
||||
#define TK_AFTER 326
|
||||
#define TK_ATTACH 327
|
||||
#define TK_BEFORE 328
|
||||
#define TK_BEGIN 329
|
||||
#define TK_BITAND 330
|
||||
#define TK_BITNOT 331
|
||||
#define TK_BITOR 332
|
||||
#define TK_BLOCKS 333
|
||||
#define TK_CHANGE 334
|
||||
#define TK_COMMA 335
|
||||
#define TK_CONCAT 336
|
||||
#define TK_CONFLICT 337
|
||||
#define TK_COPY 338
|
||||
#define TK_DEFERRED 339
|
||||
#define TK_DELIMITERS 340
|
||||
#define TK_DETACH 341
|
||||
#define TK_DIVIDE 342
|
||||
#define TK_DOT 343
|
||||
#define TK_EACH 344
|
||||
#define TK_FAIL 345
|
||||
#define TK_FILE 346
|
||||
#define TK_FOR 347
|
||||
#define TK_GLOB 348
|
||||
#define TK_ID 349
|
||||
#define TK_IMMEDIATE 350
|
||||
#define TK_IMPORT 351
|
||||
#define TK_INITIALLY 352
|
||||
#define TK_INSTEAD 353
|
||||
#define TK_ISNULL 354
|
||||
#define TK_MODULES 355
|
||||
#define TK_NK_BITNOT 356
|
||||
#define TK_NK_SEMI 357
|
||||
#define TK_NOTNULL 358
|
||||
#define TK_OF 359
|
||||
#define TK_PLUS 360
|
||||
#define TK_PRIVILEGE 361
|
||||
#define TK_RAISE 362
|
||||
#define TK_RESTRICT 363
|
||||
#define TK_ROW 364
|
||||
#define TK_STAR 365
|
||||
#define TK_STATEMENT 366
|
||||
#define TK_STRICT 367
|
||||
#define TK_STRING 368
|
||||
#define TK_TIMES 369
|
||||
#define TK_VALUES 370
|
||||
#define TK_VARIABLE 371
|
||||
#define TK_WAL 372
|
||||
#define TK_ENCODE 373
|
||||
#define TK_COMPRESS 374
|
||||
#define TK_LEVEL 375
|
||||
#define TK_CREATEDB 39
|
||||
#define TK_ADD 40
|
||||
#define TK_DROP 41
|
||||
#define TK_GRANT 42
|
||||
#define TK_ON 43
|
||||
#define TK_TO 44
|
||||
#define TK_REVOKE 45
|
||||
#define TK_FROM 46
|
||||
#define TK_SUBSCRIBE 47
|
||||
#define TK_READ 48
|
||||
#define TK_WRITE 49
|
||||
#define TK_NK_DOT 50
|
||||
#define TK_WITH 51
|
||||
#define TK_ENCRYPT_KEY 52
|
||||
#define TK_DNODE 53
|
||||
#define TK_PORT 54
|
||||
#define TK_DNODES 55
|
||||
#define TK_RESTORE 56
|
||||
#define TK_NK_IPTOKEN 57
|
||||
#define TK_FORCE 58
|
||||
#define TK_UNSAFE 59
|
||||
#define TK_CLUSTER 60
|
||||
#define TK_LOCAL 61
|
||||
#define TK_QNODE 62
|
||||
#define TK_BNODE 63
|
||||
#define TK_SNODE 64
|
||||
#define TK_MNODE 65
|
||||
#define TK_VNODE 66
|
||||
#define TK_DATABASE 67
|
||||
#define TK_USE 68
|
||||
#define TK_FLUSH 69
|
||||
#define TK_TRIM 70
|
||||
#define TK_S3MIGRATE 71
|
||||
#define TK_COMPACT 72
|
||||
#define TK_IF 73
|
||||
#define TK_NOT 74
|
||||
#define TK_EXISTS 75
|
||||
#define TK_BUFFER 76
|
||||
#define TK_CACHEMODEL 77
|
||||
#define TK_CACHESIZE 78
|
||||
#define TK_COMP 79
|
||||
#define TK_DURATION 80
|
||||
#define TK_NK_VARIABLE 81
|
||||
#define TK_MAXROWS 82
|
||||
#define TK_MINROWS 83
|
||||
#define TK_KEEP 84
|
||||
#define TK_PAGES 85
|
||||
#define TK_PAGESIZE 86
|
||||
#define TK_TSDB_PAGESIZE 87
|
||||
#define TK_PRECISION 88
|
||||
#define TK_REPLICA 89
|
||||
#define TK_VGROUPS 90
|
||||
#define TK_SINGLE_STABLE 91
|
||||
#define TK_RETENTIONS 92
|
||||
#define TK_SCHEMALESS 93
|
||||
#define TK_WAL_LEVEL 94
|
||||
#define TK_WAL_FSYNC_PERIOD 95
|
||||
#define TK_WAL_RETENTION_PERIOD 96
|
||||
#define TK_WAL_RETENTION_SIZE 97
|
||||
#define TK_WAL_ROLL_PERIOD 98
|
||||
#define TK_WAL_SEGMENT_SIZE 99
|
||||
#define TK_STT_TRIGGER 100
|
||||
#define TK_TABLE_PREFIX 101
|
||||
#define TK_TABLE_SUFFIX 102
|
||||
#define TK_S3_CHUNKSIZE 103
|
||||
#define TK_S3_KEEPLOCAL 104
|
||||
#define TK_S3_COMPACT 105
|
||||
#define TK_KEEP_TIME_OFFSET 106
|
||||
#define TK_ENCRYPT_ALGORITHM 107
|
||||
#define TK_NK_COLON 108
|
||||
#define TK_BWLIMIT 109
|
||||
#define TK_START 110
|
||||
#define TK_TIMESTAMP 111
|
||||
#define TK_END 112
|
||||
#define TK_TABLE 113
|
||||
#define TK_NK_LP 114
|
||||
#define TK_NK_RP 115
|
||||
#define TK_STABLE 116
|
||||
#define TK_COLUMN 117
|
||||
#define TK_MODIFY 118
|
||||
#define TK_RENAME 119
|
||||
#define TK_TAG 120
|
||||
#define TK_SET 121
|
||||
#define TK_NK_EQ 122
|
||||
#define TK_USING 123
|
||||
#define TK_TAGS 124
|
||||
#define TK_BOOL 125
|
||||
#define TK_TINYINT 126
|
||||
#define TK_SMALLINT 127
|
||||
#define TK_INT 128
|
||||
#define TK_INTEGER 129
|
||||
#define TK_BIGINT 130
|
||||
#define TK_FLOAT 131
|
||||
#define TK_DOUBLE 132
|
||||
#define TK_BINARY 133
|
||||
#define TK_NCHAR 134
|
||||
#define TK_UNSIGNED 135
|
||||
#define TK_JSON 136
|
||||
#define TK_VARCHAR 137
|
||||
#define TK_MEDIUMBLOB 138
|
||||
#define TK_BLOB 139
|
||||
#define TK_VARBINARY 140
|
||||
#define TK_GEOMETRY 141
|
||||
#define TK_DECIMAL 142
|
||||
#define TK_COMMENT 143
|
||||
#define TK_MAX_DELAY 144
|
||||
#define TK_WATERMARK 145
|
||||
#define TK_ROLLUP 146
|
||||
#define TK_TTL 147
|
||||
#define TK_SMA 148
|
||||
#define TK_DELETE_MARK 149
|
||||
#define TK_FIRST 150
|
||||
#define TK_LAST 151
|
||||
#define TK_SHOW 152
|
||||
#define TK_PRIVILEGES 153
|
||||
#define TK_DATABASES 154
|
||||
#define TK_TABLES 155
|
||||
#define TK_STABLES 156
|
||||
#define TK_MNODES 157
|
||||
#define TK_QNODES 158
|
||||
#define TK_ARBGROUPS 159
|
||||
#define TK_FUNCTIONS 160
|
||||
#define TK_INDEXES 161
|
||||
#define TK_ACCOUNTS 162
|
||||
#define TK_APPS 163
|
||||
#define TK_CONNECTIONS 164
|
||||
#define TK_LICENCES 165
|
||||
#define TK_GRANTS 166
|
||||
#define TK_FULL 167
|
||||
#define TK_LOGS 168
|
||||
#define TK_MACHINES 169
|
||||
#define TK_ENCRYPTIONS 170
|
||||
#define TK_QUERIES 171
|
||||
#define TK_SCORES 172
|
||||
#define TK_TOPICS 173
|
||||
#define TK_VARIABLES 174
|
||||
#define TK_BNODES 175
|
||||
#define TK_SNODES 176
|
||||
#define TK_TRANSACTIONS 177
|
||||
#define TK_DISTRIBUTED 178
|
||||
#define TK_CONSUMERS 179
|
||||
#define TK_SUBSCRIPTIONS 180
|
||||
#define TK_VNODES 181
|
||||
#define TK_ALIVE 182
|
||||
#define TK_VIEWS 183
|
||||
#define TK_VIEW 184
|
||||
#define TK_COMPACTS 185
|
||||
#define TK_NORMAL 186
|
||||
#define TK_CHILD 187
|
||||
#define TK_LIKE 188
|
||||
#define TK_TBNAME 189
|
||||
#define TK_QTAGS 190
|
||||
#define TK_AS 191
|
||||
#define TK_SYSTEM 192
|
||||
#define TK_TSMA 193
|
||||
#define TK_INTERVAL 194
|
||||
#define TK_RECURSIVE 195
|
||||
#define TK_TSMAS 196
|
||||
#define TK_FUNCTION 197
|
||||
#define TK_INDEX 198
|
||||
#define TK_COUNT 199
|
||||
#define TK_LAST_ROW 200
|
||||
#define TK_META 201
|
||||
#define TK_ONLY 202
|
||||
#define TK_TOPIC 203
|
||||
#define TK_CONSUMER 204
|
||||
#define TK_GROUP 205
|
||||
#define TK_DESC 206
|
||||
#define TK_DESCRIBE 207
|
||||
#define TK_RESET 208
|
||||
#define TK_QUERY 209
|
||||
#define TK_CACHE 210
|
||||
#define TK_EXPLAIN 211
|
||||
#define TK_ANALYZE 212
|
||||
#define TK_VERBOSE 213
|
||||
#define TK_NK_BOOL 214
|
||||
#define TK_RATIO 215
|
||||
#define TK_NK_FLOAT 216
|
||||
#define TK_OUTPUTTYPE 217
|
||||
#define TK_AGGREGATE 218
|
||||
#define TK_BUFSIZE 219
|
||||
#define TK_LANGUAGE 220
|
||||
#define TK_REPLACE 221
|
||||
#define TK_STREAM 222
|
||||
#define TK_INTO 223
|
||||
#define TK_PAUSE 224
|
||||
#define TK_RESUME 225
|
||||
#define TK_PRIMARY 226
|
||||
#define TK_KEY 227
|
||||
#define TK_TRIGGER 228
|
||||
#define TK_AT_ONCE 229
|
||||
#define TK_WINDOW_CLOSE 230
|
||||
#define TK_IGNORE 231
|
||||
#define TK_EXPIRED 232
|
||||
#define TK_FILL_HISTORY 233
|
||||
#define TK_UPDATE 234
|
||||
#define TK_SUBTABLE 235
|
||||
#define TK_UNTREATED 236
|
||||
#define TK_KILL 237
|
||||
#define TK_CONNECTION 238
|
||||
#define TK_TRANSACTION 239
|
||||
#define TK_BALANCE 240
|
||||
#define TK_VGROUP 241
|
||||
#define TK_LEADER 242
|
||||
#define TK_MERGE 243
|
||||
#define TK_REDISTRIBUTE 244
|
||||
#define TK_SPLIT 245
|
||||
#define TK_DELETE 246
|
||||
#define TK_INSERT 247
|
||||
#define TK_NK_BIN 248
|
||||
#define TK_NK_HEX 249
|
||||
#define TK_NULL 250
|
||||
#define TK_NK_QUESTION 251
|
||||
#define TK_NK_ALIAS 252
|
||||
#define TK_NK_ARROW 253
|
||||
#define TK_ROWTS 254
|
||||
#define TK_QSTART 255
|
||||
#define TK_QEND 256
|
||||
#define TK_QDURATION 257
|
||||
#define TK_WSTART 258
|
||||
#define TK_WEND 259
|
||||
#define TK_WDURATION 260
|
||||
#define TK_IROWTS 261
|
||||
#define TK_ISFILLED 262
|
||||
#define TK_CAST 263
|
||||
#define TK_NOW 264
|
||||
#define TK_TODAY 265
|
||||
#define TK_TIMEZONE 266
|
||||
#define TK_CLIENT_VERSION 267
|
||||
#define TK_SERVER_VERSION 268
|
||||
#define TK_SERVER_STATUS 269
|
||||
#define TK_CURRENT_USER 270
|
||||
#define TK_CASE 271
|
||||
#define TK_WHEN 272
|
||||
#define TK_THEN 273
|
||||
#define TK_ELSE 274
|
||||
#define TK_BETWEEN 275
|
||||
#define TK_IS 276
|
||||
#define TK_NK_LT 277
|
||||
#define TK_NK_GT 278
|
||||
#define TK_NK_LE 279
|
||||
#define TK_NK_GE 280
|
||||
#define TK_NK_NE 281
|
||||
#define TK_MATCH 282
|
||||
#define TK_NMATCH 283
|
||||
#define TK_CONTAINS 284
|
||||
#define TK_IN 285
|
||||
#define TK_JOIN 286
|
||||
#define TK_INNER 287
|
||||
#define TK_LEFT 288
|
||||
#define TK_RIGHT 289
|
||||
#define TK_OUTER 290
|
||||
#define TK_SEMI 291
|
||||
#define TK_ANTI 292
|
||||
#define TK_ASOF 293
|
||||
#define TK_WINDOW 294
|
||||
#define TK_WINDOW_OFFSET 295
|
||||
#define TK_JLIMIT 296
|
||||
#define TK_SELECT 297
|
||||
#define TK_NK_HINT 298
|
||||
#define TK_DISTINCT 299
|
||||
#define TK_WHERE 300
|
||||
#define TK_PARTITION 301
|
||||
#define TK_BY 302
|
||||
#define TK_SESSION 303
|
||||
#define TK_STATE_WINDOW 304
|
||||
#define TK_EVENT_WINDOW 305
|
||||
#define TK_COUNT_WINDOW 306
|
||||
#define TK_SLIDING 307
|
||||
#define TK_FILL 308
|
||||
#define TK_VALUE 309
|
||||
#define TK_VALUE_F 310
|
||||
#define TK_NONE 311
|
||||
#define TK_PREV 312
|
||||
#define TK_NULL_F 313
|
||||
#define TK_LINEAR 314
|
||||
#define TK_NEXT 315
|
||||
#define TK_HAVING 316
|
||||
#define TK_RANGE 317
|
||||
#define TK_EVERY 318
|
||||
#define TK_ORDER 319
|
||||
#define TK_SLIMIT 320
|
||||
#define TK_SOFFSET 321
|
||||
#define TK_LIMIT 322
|
||||
#define TK_OFFSET 323
|
||||
#define TK_ASC 324
|
||||
#define TK_NULLS 325
|
||||
#define TK_ABORT 326
|
||||
#define TK_AFTER 327
|
||||
#define TK_ATTACH 328
|
||||
#define TK_BEFORE 329
|
||||
#define TK_BEGIN 330
|
||||
#define TK_BITAND 331
|
||||
#define TK_BITNOT 332
|
||||
#define TK_BITOR 333
|
||||
#define TK_BLOCKS 334
|
||||
#define TK_CHANGE 335
|
||||
#define TK_COMMA 336
|
||||
#define TK_CONCAT 337
|
||||
#define TK_CONFLICT 338
|
||||
#define TK_COPY 339
|
||||
#define TK_DEFERRED 340
|
||||
#define TK_DELIMITERS 341
|
||||
#define TK_DETACH 342
|
||||
#define TK_DIVIDE 343
|
||||
#define TK_DOT 344
|
||||
#define TK_EACH 345
|
||||
#define TK_FAIL 346
|
||||
#define TK_FILE 347
|
||||
#define TK_FOR 348
|
||||
#define TK_GLOB 349
|
||||
#define TK_ID 350
|
||||
#define TK_IMMEDIATE 351
|
||||
#define TK_IMPORT 352
|
||||
#define TK_INITIALLY 353
|
||||
#define TK_INSTEAD 354
|
||||
#define TK_ISNULL 355
|
||||
#define TK_MODULES 356
|
||||
#define TK_NK_BITNOT 357
|
||||
#define TK_NK_SEMI 358
|
||||
#define TK_NOTNULL 359
|
||||
#define TK_OF 360
|
||||
#define TK_PLUS 361
|
||||
#define TK_PRIVILEGE 362
|
||||
#define TK_RAISE 363
|
||||
#define TK_RESTRICT 364
|
||||
#define TK_ROW 365
|
||||
#define TK_STAR 366
|
||||
#define TK_STATEMENT 367
|
||||
#define TK_STRICT 368
|
||||
#define TK_STRING 369
|
||||
#define TK_TIMES 370
|
||||
#define TK_VALUES 371
|
||||
#define TK_VARIABLE 372
|
||||
#define TK_WAL 373
|
||||
#define TK_ENCODE 374
|
||||
#define TK_COMPRESS 375
|
||||
#define TK_LEVEL 376
|
||||
|
||||
#define TK_NK_SPACE 600
|
||||
#define TK_NK_COMMENT 601
|
||||
|
|
|
@ -271,6 +271,7 @@ typedef struct SAlterUserStmt {
|
|||
char password[TSDB_USET_PASSWORD_LEN];
|
||||
int8_t enable;
|
||||
int8_t sysinfo;
|
||||
int8_t createdb;
|
||||
int32_t numIpRanges;
|
||||
SIpV4Range* pIpRanges;
|
||||
|
||||
|
|
|
@ -256,6 +256,7 @@ static const SSysDbTableSchema userUsersSchema[] = {
|
|||
{.name = "super", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT, .sysInfo = true},
|
||||
{.name = "enable", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT, .sysInfo = true},
|
||||
{.name = "sysinfo", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT, .sysInfo = true},
|
||||
{.name = "createdb", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT, .sysInfo = true},
|
||||
{.name = "create_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = true},
|
||||
{.name = "allowed_host", .bytes = TSDB_PRIVILEDGE_HOST_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true},
|
||||
};
|
||||
|
|
|
@ -1784,6 +1784,7 @@ int32_t tSerializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq)
|
|||
}
|
||||
if (tEncodeI64(&encoder, pReq->privileges) < 0) return -1;
|
||||
ENCODESQL();
|
||||
if (tEncodeI8(&encoder, pReq->flag) < 0) return -1;
|
||||
tEndEncode(&encoder);
|
||||
|
||||
int32_t tlen = encoder.pos;
|
||||
|
@ -1823,6 +1824,9 @@ int32_t tDeserializeSAlterUserReq(void *buf, int32_t bufLen, SAlterUserReq *pReq
|
|||
}
|
||||
if (tDecodeI64(&decoder, &pReq->privileges) < 0) return -1;
|
||||
DECODESQL();
|
||||
if (!tDecodeIsEnd(&decoder)) {
|
||||
if (tDecodeI8(&decoder, &pReq->flag) < 0) return -1;
|
||||
}
|
||||
tEndDecode(&decoder);
|
||||
|
||||
tDecoderClear(&decoder);
|
||||
|
|
|
@ -321,15 +321,21 @@ typedef struct {
|
|||
} SAcctObj;
|
||||
|
||||
typedef struct {
|
||||
char user[TSDB_USER_LEN];
|
||||
char pass[TSDB_PASSWORD_LEN];
|
||||
char acct[TSDB_USER_LEN];
|
||||
int64_t createdTime;
|
||||
int64_t updateTime;
|
||||
int8_t superUser;
|
||||
int8_t sysInfo;
|
||||
int8_t enable;
|
||||
int8_t reserve;
|
||||
char user[TSDB_USER_LEN];
|
||||
char pass[TSDB_PASSWORD_LEN];
|
||||
char acct[TSDB_USER_LEN];
|
||||
int64_t createdTime;
|
||||
int64_t updateTime;
|
||||
int8_t superUser;
|
||||
int8_t sysInfo;
|
||||
int8_t enable;
|
||||
union {
|
||||
int8_t flag;
|
||||
struct {
|
||||
int8_t createdb : 1;
|
||||
int8_t reserve : 7;
|
||||
};
|
||||
};
|
||||
int32_t acctId;
|
||||
int32_t authVersion;
|
||||
int32_t passVersion;
|
||||
|
|
|
@ -644,6 +644,7 @@ static int32_t mndCreateDefaultUser(SMnode *pMnode, char *acct, char *user, char
|
|||
userObj.updateTime = userObj.createdTime;
|
||||
userObj.sysInfo = 1;
|
||||
userObj.enable = 1;
|
||||
userObj.createdb = 1;
|
||||
userObj.ipWhiteListVer = taosGetTimestampMs();
|
||||
userObj.pIpWhiteList = createDefaultIpWhiteList();
|
||||
if (strcmp(user, TSDB_DEFAULT_USER) == 0) {
|
||||
|
@ -817,7 +818,7 @@ SSdbRaw *mndUserActionEncode(SUserObj *pUser) {
|
|||
SDB_SET_INT8(pRaw, dataPos, pUser->superUser, _OVER)
|
||||
SDB_SET_INT8(pRaw, dataPos, pUser->sysInfo, _OVER)
|
||||
SDB_SET_INT8(pRaw, dataPos, pUser->enable, _OVER)
|
||||
SDB_SET_INT8(pRaw, dataPos, pUser->reserve, _OVER)
|
||||
SDB_SET_INT8(pRaw, dataPos, pUser->flag, _OVER)
|
||||
SDB_SET_INT32(pRaw, dataPos, pUser->authVersion, _OVER)
|
||||
SDB_SET_INT32(pRaw, dataPos, pUser->passVersion, _OVER)
|
||||
SDB_SET_INT32(pRaw, dataPos, numOfReadDbs, _OVER)
|
||||
|
@ -1001,7 +1002,7 @@ static SSdbRow *mndUserActionDecode(SSdbRaw *pRaw) {
|
|||
SDB_GET_INT8(pRaw, dataPos, &pUser->superUser, _OVER)
|
||||
SDB_GET_INT8(pRaw, dataPos, &pUser->sysInfo, _OVER)
|
||||
SDB_GET_INT8(pRaw, dataPos, &pUser->enable, _OVER)
|
||||
SDB_GET_INT8(pRaw, dataPos, &pUser->reserve, _OVER)
|
||||
SDB_GET_INT8(pRaw, dataPos, &pUser->flag, _OVER)
|
||||
SDB_GET_INT32(pRaw, dataPos, &pUser->authVersion, _OVER)
|
||||
if (sver >= 4) {
|
||||
SDB_GET_INT32(pRaw, dataPos, &pUser->passVersion, _OVER)
|
||||
|
@ -1395,6 +1396,7 @@ static int32_t mndUserActionUpdate(SSdb *pSdb, SUserObj *pOld, SUserObj *pNew) {
|
|||
pOld->passVersion = pNew->passVersion;
|
||||
pOld->sysInfo = pNew->sysInfo;
|
||||
pOld->enable = pNew->enable;
|
||||
pOld->flag = pNew->flag;
|
||||
memcpy(pOld->pass, pNew->pass, TSDB_PASSWORD_LEN);
|
||||
TSWAP(pOld->readDbs, pNew->readDbs);
|
||||
TSWAP(pOld->writeDbs, pNew->writeDbs);
|
||||
|
@ -1445,6 +1447,7 @@ static int32_t mndCreateUser(SMnode *pMnode, char *acct, SCreateUserReq *pCreate
|
|||
userObj.superUser = 0; // pCreate->superUser;
|
||||
userObj.sysInfo = pCreate->sysInfo;
|
||||
userObj.enable = pCreate->enable;
|
||||
userObj.createdb = 0;
|
||||
|
||||
if (pCreate->numIpRanges == 0) {
|
||||
userObj.pIpWhiteList = createDefaultIpWhiteList();
|
||||
|
@ -1790,6 +1793,9 @@ static char *mndUserAuditTypeStr(int32_t type) {
|
|||
if (type == TSDB_ALTER_USER_SYSINFO) {
|
||||
return "userSysInfo";
|
||||
}
|
||||
if (type == TSDB_ALTER_USER_CREATEDB) {
|
||||
return "userCreateDB";
|
||||
}
|
||||
return "error";
|
||||
}
|
||||
|
||||
|
@ -2009,6 +2015,10 @@ static int32_t mndProcessAlterUserReq(SRpcMsg *pReq) {
|
|||
newUser.sysInfo = alterReq.sysInfo;
|
||||
}
|
||||
|
||||
if(alterReq.alterType == TSDB_ALTER_USER_CREATEDB) {
|
||||
newUser.createdb = alterReq.createdb;
|
||||
}
|
||||
|
||||
if (ALTER_USER_ADD_PRIVS(alterReq.alterType) || ALTER_USER_DEL_PRIVS(alterReq.alterType)) {
|
||||
if (0 != mndProcessAlterUserPrivilegesReq(&alterReq, pMnode, &newUser)) goto _OVER;
|
||||
}
|
||||
|
@ -2110,14 +2120,15 @@ static int32_t mndProcessAlterUserReq(SRpcMsg *pReq) {
|
|||
|
||||
if(alterReq.alterType == TSDB_ALTER_USER_PASSWD){
|
||||
char detail[1000] = {0};
|
||||
sprintf(detail, "alterType:%s, enable:%d, superUser:%d, sysInfo:%d, tabName:%s, password:xxx",
|
||||
sprintf(detail, "alterType:%s, enable:%d, superUser:%d, sysInfo:%d, createdb:%d, tabName:%s, password:xxx",
|
||||
mndUserAuditTypeStr(alterReq.alterType), alterReq.enable, alterReq.superUser, alterReq.sysInfo,
|
||||
alterReq.tabName);
|
||||
alterReq.createdb ? 1 : 0, alterReq.tabName);
|
||||
auditRecord(pReq, pMnode->clusterId, "alterUser", "", alterReq.user, detail, strlen(detail));
|
||||
}
|
||||
else if(alterReq.alterType == TSDB_ALTER_USER_SUPERUSER ||
|
||||
alterReq.alterType == TSDB_ALTER_USER_ENABLE ||
|
||||
alterReq.alterType == TSDB_ALTER_USER_SYSINFO){
|
||||
alterReq.alterType == TSDB_ALTER_USER_SYSINFO ||
|
||||
alterReq.alterType == TSDB_ALTER_USER_CREATEDB){
|
||||
auditRecord(pReq, pMnode->clusterId, "alterUser", "", alterReq.user, alterReq.sql, alterReq.sqlLen);
|
||||
}
|
||||
else if(ALTER_USER_ADD_READ_DB_PRIV(alterReq.alterType, alterReq.privileges, alterReq.tabName)||
|
||||
|
@ -2290,6 +2301,7 @@ static int32_t mndRetrieveUsers(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBl
|
|||
int32_t numOfRows = 0;
|
||||
SUserObj *pUser = NULL;
|
||||
int32_t cols = 0;
|
||||
int8_t flag = 0;
|
||||
char *pWrite;
|
||||
|
||||
while (numOfRows < rows) {
|
||||
|
@ -2314,6 +2326,11 @@ static int32_t mndRetrieveUsers(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBl
|
|||
pColInfo = taosArrayGet(pBlock->pDataBlock, cols);
|
||||
colDataSetVal(pColInfo, numOfRows, (const char *)&pUser->sysInfo, false);
|
||||
|
||||
cols++;
|
||||
flag = pUser->createdb ? 1 : 0;
|
||||
pColInfo = taosArrayGet(pBlock->pDataBlock, cols);
|
||||
colDataSetVal(pColInfo, numOfRows, (const char *)&flag, false);
|
||||
|
||||
cols++;
|
||||
pColInfo = taosArrayGet(pBlock->pDataBlock, cols);
|
||||
colDataSetVal(pColInfo, numOfRows, (const char *)&pUser->createdTime, false);
|
||||
|
|
|
@ -6168,6 +6168,7 @@ static const char* jkAlterUserStmtAlterType = "AlterType";
|
|||
static const char* jkAlterUserStmtPassword = "Password";
|
||||
static const char* jkAlterUserStmtEnable = "Enable";
|
||||
static const char* jkAlterUserStmtSysinfo = "Sysinfo";
|
||||
static const char* jkAlterUserStmtCreatedb = "Createdb";
|
||||
|
||||
static int32_t alterUserStmtToJson(const void* pObj, SJson* pJson) {
|
||||
const SAlterUserStmt* pNode = (const SAlterUserStmt*)pObj;
|
||||
|
@ -6185,6 +6186,9 @@ static int32_t alterUserStmtToJson(const void* pObj, SJson* pJson) {
|
|||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tjsonAddIntegerToObject(pJson, jkAlterUserStmtSysinfo, pNode->sysinfo);
|
||||
}
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tjsonAddIntegerToObject(pJson, jkAlterUserStmtCreatedb, pNode->createdb);
|
||||
}
|
||||
|
||||
return code;
|
||||
}
|
||||
|
@ -6205,6 +6209,9 @@ static int32_t jsonToAlterUserStmt(const SJson* pJson, void* pObj) {
|
|||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tjsonGetTinyIntValue(pJson, jkAlterUserStmtSysinfo, &pNode->sysinfo);
|
||||
}
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tjsonGetTinyIntValue(pJson, jkAlterUserStmtCreatedb, &pNode->createdb);
|
||||
}
|
||||
|
||||
return code;
|
||||
}
|
||||
|
|
|
@ -104,6 +104,7 @@ cmd ::= CREATE USER user_name(A) PASS NK_STRING(B) sysinfo_opt(C)
|
|||
cmd ::= ALTER USER user_name(A) PASS NK_STRING(B). { pCxt->pRootNode = createAlterUserStmt(pCxt, &A, TSDB_ALTER_USER_PASSWD, &B); }
|
||||
cmd ::= ALTER USER user_name(A) ENABLE NK_INTEGER(B). { pCxt->pRootNode = createAlterUserStmt(pCxt, &A, TSDB_ALTER_USER_ENABLE, &B); }
|
||||
cmd ::= ALTER USER user_name(A) SYSINFO NK_INTEGER(B). { pCxt->pRootNode = createAlterUserStmt(pCxt, &A, TSDB_ALTER_USER_SYSINFO, &B); }
|
||||
cmd ::= ALTER USER user_name(A) CREATEDB NK_INTEGER(B). { pCxt->pRootNode = createAlterUserStmt(pCxt, &A, TSDB_ALTER_USER_CREATEDB, &B); }
|
||||
cmd ::= ALTER USER user_name(A) ADD white_list(B). { pCxt->pRootNode = createAlterUserStmt(pCxt, &A, TSDB_ALTER_USER_ADD_WHITE_LIST, B); }
|
||||
cmd ::= ALTER USER user_name(A) DROP white_list(B). { pCxt->pRootNode = createAlterUserStmt(pCxt, &A, TSDB_ALTER_USER_DROP_WHITE_LIST, B); }
|
||||
cmd ::= DROP USER user_name(A). { pCxt->pRootNode = createDropUserStmt(pCxt, &A); }
|
||||
|
|
|
@ -2260,6 +2260,11 @@ SNode* createAlterUserStmt(SAstCreateContext* pCxt, SToken* pUserName, int8_t al
|
|||
pStmt->sysinfo = taosStr2Int8(pVal->z, NULL, 10);
|
||||
break;
|
||||
}
|
||||
case TSDB_ALTER_USER_CREATEDB: {
|
||||
SToken* pVal = pAlterInfo;
|
||||
pStmt->createdb = taosStr2Int8(pVal->z, NULL, 10);
|
||||
break;
|
||||
}
|
||||
case TSDB_ALTER_USER_ADD_WHITE_LIST:
|
||||
case TSDB_ALTER_USER_DROP_WHITE_LIST: {
|
||||
SNodeList* pIpRangesNodeList = pAlterInfo;
|
||||
|
|
|
@ -77,6 +77,7 @@ static SKeyword keywordTable[] = {
|
|||
{"COUNT", TK_COUNT},
|
||||
{"COUNT_WINDOW", TK_COUNT_WINDOW},
|
||||
{"CREATE", TK_CREATE},
|
||||
{"CREATEDB", TK_CREATEDB},
|
||||
{"CURRENT_USER", TK_CURRENT_USER},
|
||||
{"DATABASE", TK_DATABASE},
|
||||
{"DATABASES", TK_DATABASES},
|
||||
|
|
|
@ -8367,6 +8367,7 @@ static int32_t translateAlterUser(STranslateContext* pCxt, SAlterUserStmt* pStmt
|
|||
alterReq.superUser = 0;
|
||||
alterReq.enable = pStmt->enable;
|
||||
alterReq.sysInfo = pStmt->sysinfo;
|
||||
alterReq.createdb = pStmt->createdb ? 1 : 0;
|
||||
snprintf(alterReq.pass, sizeof(alterReq.pass), "%s", pStmt->password);
|
||||
if (NULL != pCxt->pParseCxt->db) {
|
||||
snprintf(alterReq.objname, sizeof(alterReq.objname), "%s", pCxt->pParseCxt->db);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue