diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 496af6d881..a9923e4e48 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -181,12 +181,10 @@ typedef enum _mgmt_table { #define TSDB_ALTER_USER_REMOVE_READ_TABLE 0xE #define TSDB_ALTER_USER_ADD_WRITE_TABLE 0xF #define TSDB_ALTER_USER_REMOVE_WRITE_TABLE 0x10 -#define TSDB_ALTER_USER_ADD_ALL_TABLE 0x11 -#define TSDB_ALTER_USER_REMOVE_ALL_TABLE 0x12 -#define TSDB_ALTER_USER_ADD_READ_TAG 0x13 -#define TSDB_ALTER_USER_REMOVE_READ_TAG 0x14 -#define TSDB_ALTER_USER_ADD_WRITE_TAG 0x15 -#define TSDB_ALTER_USER_REMOVE_WRITE_TAG 0x16 +#define TSDB_ALTER_USER_ADD_READ_TAG 0x11 +#define TSDB_ALTER_USER_REMOVE_READ_TAG 0x12 +#define TSDB_ALTER_USER_ADD_WRITE_TAG 0x13 +#define TSDB_ALTER_USER_REMOVE_WRITE_TAG 0x14 #define TSDB_ALTER_USER_PRIVILEGES 0x2 diff --git a/source/dnode/mnode/impl/src/mndUser.c b/source/dnode/mnode/impl/src/mndUser.c index 56f4a629ef..9f1732da2e 100644 --- a/source/dnode/mnode/impl/src/mndUser.c +++ b/source/dnode/mnode/impl/src/mndUser.c @@ -680,58 +680,28 @@ static int32_t mndTagPriviledge(SMnode *pMnode, SHashObj *hash, SAlterUserReq *a static int32_t mndTablePriviledge(SMnode *pMnode, SHashObj *hash, SAlterUserReq *alterReq, SSdb *pSdb){ void *pIter = NULL; + char tbFName[TSDB_TABLE_FNAME_LEN] = {0}; - if (strcmp(alterReq->tabName, "1.*") != 0) { - char tbFName[TSDB_TABLE_FNAME_LEN] = {0}; - snprintf(tbFName, sizeof(tbFName), "%s.%s", alterReq->objname, alterReq->tabName); - int32_t len = strlen(tbFName) + 1; + snprintf(tbFName, sizeof(tbFName), "%s.%s", alterReq->objname, alterReq->tabName); + int32_t len = strlen(tbFName) + 1; - if (taosHashPut(hash, tbFName, len, tbFName, len) != 0) { - return -1; - } - } else { - while (1) { - SStbObj *pStb = NULL; - pIter = sdbFetch(pSdb, SDB_STB, pIter, (void **)&pStb); - if (pIter == NULL) break; - int32_t len = strlen(pStb->name) + 1; - taosHashPut(hash, pStb->name, len, pStb->name, len); - sdbRelease(pSdb, pStb); - } + if (taosHashPut(hash, tbFName, len, tbFName, len) != 0) { + return -1; } + return 0; } static int32_t mndRemoveTablePriviledge(SMnode *pMnode, SHashObj *hash, SAlterUserReq *alterReq, SSdb *pSdb){ void *pIter = NULL; - if (strcmp(alterReq->objname, "1.*") != 0) { - char tbFName[TSDB_TABLE_FNAME_LEN] = {0}; - snprintf(tbFName, sizeof(tbFName), "%s.%s", alterReq->objname, alterReq->tabName); - int32_t len = strlen(tbFName) + 1; + char tbFName[TSDB_TABLE_FNAME_LEN] = {0}; + snprintf(tbFName, sizeof(tbFName), "%s.%s", alterReq->objname, alterReq->tabName); + int32_t len = strlen(tbFName) + 1; - if (taosHashRemove(hash, tbFName, len) != 0) { - return -1; - } - } else { - while (1) { - SStbObj *pStb = NULL; - pIter = sdbFetch(pSdb, SDB_STB, pIter, (void **)&pStb); - if (pIter == NULL) break; - int32_t len = strlen(pStb->name) + 1; + if (taosHashRemove(hash, tbFName, len) != 0) { + return -1; + } - if(strcmp(pStb->db, alterReq->objname) == 0){ - if (taosHashRemove(hash, pStb->name, len) != 0) { - mndReleaseStb(pMnode, pStb); - return -1; - } - } - - //taosHashPut(newUser.writeStbs, pStb->name, len, pStb->name, TSDB_DB_FNAME_LEN); - //sdbRelease(pSdb, pStb); - } - - //taosHashClear(newUser.readStbs); - } return 0; } @@ -874,23 +844,21 @@ static int32_t mndProcessAlterUserReq(SRpcMsg *pReq) { } } - if (alterReq.alterType == TSDB_ALTER_USER_ADD_READ_TABLE || alterReq.alterType == TSDB_ALTER_USER_ADD_ALL_TABLE) { + if (alterReq.alterType == TSDB_ALTER_USER_ADD_READ_TABLE) { if(mndTablePriviledge(pMnode, newUser.readTbs, &alterReq, pSdb) != 0) goto _OVER; } - if (alterReq.alterType == TSDB_ALTER_USER_ADD_WRITE_TABLE || alterReq.alterType == TSDB_ALTER_USER_ADD_ALL_TABLE) { + if (alterReq.alterType == TSDB_ALTER_USER_ADD_WRITE_TABLE) { if(mndTablePriviledge(pMnode, newUser.writeTbs, &alterReq, pSdb) != 0) goto _OVER; } if (alterReq.alterType == TSDB_ALTER_USER_REMOVE_READ_TABLE || - alterReq.alterType == TSDB_ALTER_USER_REMOVE_READ_TAG || - alterReq.alterType == TSDB_ALTER_USER_REMOVE_ALL_TABLE) { + alterReq.alterType == TSDB_ALTER_USER_REMOVE_READ_TAG) { if(mndRemoveTablePriviledge(pMnode, newUser.readTbs, &alterReq, pSdb) != 0) goto _OVER; } if (alterReq.alterType == TSDB_ALTER_USER_REMOVE_WRITE_TABLE || - alterReq.alterType == TSDB_ALTER_USER_REMOVE_WRITE_TAG || - alterReq.alterType == TSDB_ALTER_USER_REMOVE_ALL_TABLE) { + alterReq.alterType == TSDB_ALTER_USER_REMOVE_WRITE_TAG ) { if(mndRemoveTablePriviledge(pMnode, newUser.writeTbs, &alterReq, pSdb) != 0) goto _OVER; }