Fix priv bugs
This commit is contained in:
@ -321,6 +321,23 @@ int ObRevokeResolver::resolve_mysql(const ParseNode &parse_tree)
|
||||
users_node = node->children_[0];
|
||||
revoke_stmt->set_revoke_all(true);
|
||||
revoke_stmt->set_grant_level(OB_PRIV_USER_LEVEL);
|
||||
if (OB_SUCC(ret)) {
|
||||
ObSessionPrivInfo session_priv;
|
||||
ObArenaAllocator alloc;
|
||||
ObStmtNeedPrivs stmt_need_privs(alloc);
|
||||
ObNeedPriv need_priv("mysql", "", OB_PRIV_DB_LEVEL, OB_PRIV_UPDATE, false);
|
||||
OZ (stmt_need_privs.need_privs_.init(1));
|
||||
OZ (stmt_need_privs.need_privs_.push_back(need_priv));
|
||||
//check CREATE USER or UPDATE privilege on mysql
|
||||
params_.session_info_->get_session_priv_info(session_priv);
|
||||
if (OB_SUCC(ret) && OB_FAIL(schema_checker_->check_priv(session_priv, stmt_need_privs))) {
|
||||
stmt_need_privs.need_privs_.at(0) =
|
||||
ObNeedPriv("", "", OB_PRIV_USER_LEVEL, OB_PRIV_CREATE_USER, false);
|
||||
if (OB_FAIL(schema_checker_->check_priv(session_priv, stmt_need_privs))) {
|
||||
LOG_WARN("no priv", K(ret));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//resolve privileges
|
||||
if (OB_SUCC(ret) && (NULL != privs_node)) {
|
||||
|
||||
Reference in New Issue
Block a user