提交 24d7dc58 编写于 作者: T Tao Liu

[TD-424] modify the tscGetmetadata

上级 0462bb1b
...@@ -307,6 +307,7 @@ typedef struct _tsc_obj { ...@@ -307,6 +307,7 @@ typedef struct _tsc_obj {
char sversion[TSDB_VERSION_LEN]; char sversion[TSDB_VERSION_LEN];
char writeAuth : 1; char writeAuth : 1;
char superAuth : 1; char superAuth : 1;
char auditAuth : 1;
struct _sql_obj *pSql; struct _sql_obj *pSql;
struct _sql_obj *pHb; struct _sql_obj *pHb;
struct _sql_obj *sqlList; struct _sql_obj *sqlList;
......
...@@ -3353,6 +3353,7 @@ int tscProcessConnectRsp(SSqlObj *pSql) { ...@@ -3353,6 +3353,7 @@ int tscProcessConnectRsp(SSqlObj *pSql) {
strcpy(pObj->sversion, pConnect->version); strcpy(pObj->sversion, pConnect->version);
pObj->writeAuth = pConnect->writeAuth; pObj->writeAuth = pConnect->writeAuth;
pObj->superAuth = pConnect->superAuth; pObj->superAuth = pConnect->superAuth;
pObj->auditAuth = pConnect->auditAuth;
taosTmrReset(tscProcessActivityTimer, tsShellActivityTimer * 500, pObj, tscTmr, &pObj->pTimer); taosTmrReset(tscProcessActivityTimer, tsShellActivityTimer * 500, pObj, tscTmr, &pObj->pTimer);
return 0; return 0;
...@@ -3576,6 +3577,15 @@ static int32_t doGetMeterMetaFromServer(SSqlObj *pSql, SMeterMetaInfo *pMeterMet ...@@ -3576,6 +3577,15 @@ static int32_t doGetMeterMetaFromServer(SSqlObj *pSql, SMeterMetaInfo *pMeterMet
int tscGetMeterMeta(SSqlObj *pSql, SMeterMetaInfo *pMeterMetaInfo) { int tscGetMeterMeta(SSqlObj *pSql, SMeterMetaInfo *pMeterMetaInfo) {
assert(strlen(pMeterMetaInfo->name) != 0); assert(strlen(pMeterMetaInfo->name) != 0);
char db[TSDB_DB_NAME_LEN + 1] = {0};
extractDBName(pMeterMetaInfo->name, db);
if(strncasecmp(db,"audit",5) == 0 && pSql->pTscObj->auditAuth == 0 && strncasecmp(pSql->pTscObj->user,"monitor",7) != 0) {
return TSDB_CODE_NOT_AUDIT_USER;
}
if(strncasecmp(db,"audit",5) != 0 && pSql->pTscObj->auditAuth != 0 && pSql->pTscObj->writeAuth == 0 ){
return TSDB_CODE_NO_RIGHTS;
}
// If this SMeterMetaInfo owns a metermeta, release it first // If this SMeterMetaInfo owns a metermeta, release it first
if (pMeterMetaInfo->pMeterMeta != NULL) { if (pMeterMetaInfo->pMeterMeta != NULL) {
taosRemoveDataFromCache(tscCacheHandle, (void **)&(pMeterMetaInfo->pMeterMeta), false); taosRemoveDataFromCache(tscCacheHandle, (void **)&(pMeterMetaInfo->pMeterMeta), false);
......
...@@ -391,6 +391,7 @@ typedef struct { ...@@ -391,6 +391,7 @@ typedef struct {
char version[TSDB_VERSION_LEN]; char version[TSDB_VERSION_LEN];
char writeAuth; char writeAuth;
char superAuth; char superAuth;
char auditAuth;
} SConnectRsp; } SConnectRsp;
typedef struct { typedef struct {
......
...@@ -1416,6 +1416,7 @@ _rsp: ...@@ -1416,6 +1416,7 @@ _rsp:
strcpy(pConnectRsp->version, version); strcpy(pConnectRsp->version, version);
pConnectRsp->writeAuth = pConn->writeAuth; pConnectRsp->writeAuth = pConn->writeAuth;
pConnectRsp->superAuth = pConn->superAuth; pConnectRsp->superAuth = pConn->superAuth;
pConnectRsp->auditAuth = pConn->auditAuth;
pMsg += sizeof(SConnectRsp); pMsg += sizeof(SConnectRsp);
int size; int size;
...@@ -1441,6 +1442,7 @@ _rsp: ...@@ -1441,6 +1442,7 @@ _rsp:
} else { } else {
pConnectRsp->writeAuth = 0; pConnectRsp->writeAuth = 0;
pConnectRsp->superAuth = 0; pConnectRsp->superAuth = 0;
pConnectRsp->auditAuth = 0;
pConn->pAcct = NULL; pConn->pAcct = NULL;
pConn->pUser = NULL; pConn->pUser = NULL;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册