Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
003d509d
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
003d509d
编写于
10月 29, 2021
作者:
S
Shengliang Guan
提交者:
GitHub
10月 29, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #8319 from taosdata/feature/TS-463
Feature/ts 463: grant check for query while not for write/show
上级
9c8f5a03
33111276
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
27 addition
and
3 deletion
+27
-3
CMakeLists.txt
CMakeLists.txt
+1
-0
cmake/define.inc
cmake/define.inc
+4
-0
src/dnode/CMakeLists.txt
src/dnode/CMakeLists.txt
+4
-0
src/dnode/src/dnodeMain.c
src/dnode/src/dnodeMain.c
+2
-0
src/mnode/src/mnodeDb.c
src/mnode/src/mnodeDb.c
+4
-1
src/mnode/src/mnodeFunc.c
src/mnode/src/mnodeFunc.c
+2
-0
src/mnode/src/mnodeMain.c
src/mnode/src/mnodeMain.c
+1
-1
src/mnode/src/mnodeWrite.c
src/mnode/src/mnodeWrite.c
+3
-1
src/vnode/src/vnodeRead.c
src/vnode/src/vnodeRead.c
+6
-0
未找到文件。
CMakeLists.txt
浏览文件 @
003d509d
...
...
@@ -18,6 +18,7 @@ ENDIF ()
SET
(
TD_ACCOUNT FALSE
)
SET
(
TD_ADMIN FALSE
)
SET
(
TD_GRANT FALSE
)
SET
(
TD_USB_DONGLE FALSE
)
SET
(
TD_MQTT FALSE
)
SET
(
TD_TSDB_PLUGINS FALSE
)
SET
(
TD_STORAGE FALSE
)
...
...
cmake/define.inc
浏览文件 @
003d509d
...
...
@@ -13,6 +13,10 @@ IF (TD_GRANT)
ADD_DEFINITIONS
(
-
D_GRANT
)
ENDIF
()
IF
(
TD_USB_DONGLE
)
ADD_DEFINITIONS
(
-
D_USB_DONGLE
)
ENDIF
()
IF
(
TD_MQTT
)
ADD_DEFINITIONS
(
-
D_MQTT
)
ENDIF
()
...
...
src/dnode/CMakeLists.txt
浏览文件 @
003d509d
...
...
@@ -39,6 +39,10 @@ IF (TD_GRANT)
TARGET_LINK_LIBRARIES
(
taosd grant
)
ENDIF
()
IF
(
TD_USB_DONGLE
)
TARGET_LINK_LIBRARIES
(
taosd usb_dongle
)
ENDIF
()
IF
(
TD_MQTT
)
TARGET_LINK_LIBRARIES
(
taosd mqtt
)
ENDIF
()
...
...
src/dnode/src/dnodeMain.c
浏览文件 @
003d509d
...
...
@@ -23,6 +23,7 @@
#include "twal.h"
#include "tfs.h"
#include "tsync.h"
#include "tgrant.h"
#include "dnodeStep.h"
#include "dnodePeer.h"
#include "dnodeModule.h"
...
...
@@ -88,6 +89,7 @@ static SStep tsDnodeSteps[] = {
{
"dnode-statustmr"
,
dnodeInitStatusTimer
,
dnodeCleanupStatusTimer
},
{
"dnode-telemetry"
,
dnodeInitTelemetry
,
dnodeCleanupTelemetry
},
{
"dnode-script"
,
scriptEnvPoolInit
,
scriptEnvPoolCleanup
},
{
"dnode-grant"
,
grantInit
,
grantCleanUp
},
};
static
SStep
tsDnodeCompactSteps
[]
=
{
...
...
src/mnode/src/mnodeDb.c
浏览文件 @
003d509d
...
...
@@ -927,9 +927,12 @@ static int32_t mnodeProcessCreateDbMsg(SMnodeMsg *pMsg) {
pCreate
->
maxRowsPerFileBlock
=
htonl
(
pCreate
->
maxRowsPerFileBlock
);
int32_t
code
;
#ifdef GRANT_CHECK_WRITE
if
(
grantCheck
(
TSDB_GRANT_TIME
)
!=
TSDB_CODE_SUCCESS
)
{
code
=
TSDB_CODE_GRANT_EXPIRED
;
}
else
if
(
!
pMsg
->
pUser
->
writeAuth
)
{
}
// else
#endif
if
(
!
pMsg
->
pUser
->
writeAuth
)
{
code
=
TSDB_CODE_MND_NO_RIGHTS
;
}
else
{
code
=
mnodeCreateDb
(
pMsg
->
pUser
->
pAcct
,
pCreate
,
pMsg
);
...
...
src/mnode/src/mnodeFunc.c
浏览文件 @
003d509d
...
...
@@ -191,9 +191,11 @@ static int32_t mnodeUpdateFunc(SFuncObj *pFunc, void *pMsg) {
}
*/
int32_t
mnodeCreateFunc
(
SAcctObj
*
pAcct
,
char
*
name
,
int32_t
codeLen
,
char
*
codeScript
,
char
*
path
,
uint8_t
outputType
,
int16_t
outputLen
,
int32_t
funcType
,
int32_t
bufSize
,
SMnodeMsg
*
pMsg
)
{
#ifdef GRANT_CHECK_WRITE
if
(
grantCheck
(
TSDB_GRANT_TIME
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_GRANT_EXPIRED
;
}
#endif
if
(
!
pMsg
->
pUser
->
writeAuth
)
{
return
TSDB_CODE_MND_NO_RIGHTS
;
...
...
src/mnode/src/mnodeMain.c
浏览文件 @
003d509d
...
...
@@ -55,7 +55,7 @@ static SStep tsMnodeSteps[] = {
{
"mnodes"
,
mnodeInitMnodes
,
mnodeCleanupMnodes
},
{
"sdb"
,
sdbInit
,
sdbCleanUp
},
{
"balance"
,
bnInit
,
bnCleanUp
},
{
"grant"
,
grantInit
,
grantCleanUp
},
//
{"grant", grantInit, grantCleanUp},
{
"show"
,
mnodeInitShow
,
mnodeCleanUpShow
}
};
...
...
src/mnode/src/mnodeWrite.c
浏览文件 @
003d509d
...
...
@@ -65,14 +65,16 @@ int32_t mnodeProcessWrite(SMnodeMsg *pMsg) {
return
TSDB_CODE_MND_MSG_NOT_PROCESSED
;
}
#ifdef GRANT_CHECK_WRITE
int32_t
code
=
grantCheck
(
TSDB_GRANT_TIME
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
mError
(
"msg:%p, app:%p type:%s not processed, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
taosMsg
[
pMsg
->
rpcMsg
.
msgType
],
tstrerror
(
code
));
return
code
;
}
#endif
code
=
mnodeInitMsg
(
pMsg
);
int32_t
code
=
mnodeInitMsg
(
pMsg
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
mError
(
"msg:%p, app:%p type:%s not processed, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
taosMsg
[
pMsg
->
rpcMsg
.
msgType
],
tstrerror
(
code
));
...
...
src/vnode/src/vnodeRead.c
浏览文件 @
003d509d
...
...
@@ -20,6 +20,7 @@
#include "tglobal.h"
#include "query.h"
#include "vnodeStatus.h"
#include "tgrant.h"
int32_t
vNumOfExistedQHandle
;
// current initialized and existed query handle in current dnode
...
...
@@ -55,6 +56,11 @@ int32_t vnodeProcessRead(void *vparam, SVReadMsg *pRead) {
}
static
int32_t
vnodeCheckRead
(
SVnodeObj
*
pVnode
)
{
if
(
grantCheck
(
TSDB_GRANT_TIME
)
!=
TSDB_CODE_SUCCESS
)
{
vDebug
(
"vgId:%d, grant expired, refCount:%d pVnode:%p"
,
pVnode
->
vgId
,
pVnode
->
refCount
,
pVnode
);
return
TSDB_CODE_GRANT_EXPIRED
;
}
if
(
!
vnodeInReadyStatus
(
pVnode
))
{
vDebug
(
"vgId:%d, vnode status is %s, refCount:%d pVnode:%p"
,
pVnode
->
vgId
,
vnodeStatus
[
pVnode
->
status
],
pVnode
->
refCount
,
pVnode
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录