[SCN] fix farm failure

This commit is contained in:
obdev
2022-11-28 02:58:33 +00:00
committed by ob-robot
parent 87a9357186
commit 51de5b5911
594 changed files with 9722 additions and 7770 deletions

View File

@ -1385,7 +1385,7 @@ int ObSchemaChecker::get_routine_infos_in_udt(const uint64_t tenant_id,
int ObSchemaChecker::get_package_info(const uint64_t tenant_id,
const ObString &database_name,
const ObString &package_name,
const ObPackageType type,
const share::schema::ObPackageType type,
const int64_t compatible_mode,
const ObPackageInfo *&package_info)
{
@ -2518,7 +2518,7 @@ int ObSchemaChecker::check_ora_grant_role_priv(
LOG_WARN("schema checker is not inited", K(is_inited_), K(ret));
} else if (schema_mgr_ == NULL) {
ret = OB_ERR_UNEXPECTED;
} else if (GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_2260) {
} else {
OZ (ObOraSysChecker::check_ora_grant_role_priv(*schema_mgr_,
tenant_id,
user_id,
@ -2543,7 +2543,7 @@ int ObSchemaChecker::check_ora_grant_sys_priv(
LOG_WARN("schema checker is not inited", K(is_inited_), K(ret));
} else if (schema_mgr_ == NULL) {
ret = OB_ERR_UNEXPECTED;
} else if (GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_2260) {
} else {
OZ (ObOraSysChecker::check_ora_grant_sys_priv(*schema_mgr_,
tenant_id,
user_id,
@ -2575,7 +2575,7 @@ int ObSchemaChecker::check_ora_grant_obj_priv(
LOG_WARN("schema checker is not inited", K(is_inited_), K(ret));
} else if (schema_mgr_ == NULL) {
ret = OB_ERR_UNEXPECTED;
} else if (GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_2260) {
} else {
OZ (ObOraSysChecker::check_ora_grant_obj_priv(*schema_mgr_,
tenant_id,
user_id,
@ -2611,7 +2611,7 @@ int ObSchemaChecker::check_ora_ddl_priv(
LOG_WARN("schema checker is not inited", K(is_inited_), K(ret));
} else if (schema_mgr_ == NULL) {
ret = OB_ERR_UNEXPECTED;
} else if (GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_2260) {
} else {
if (is_ora_lbacsys_user(user_id) && is_lbca_op()) {
// need not check
} else {
@ -2648,7 +2648,7 @@ int ObSchemaChecker::check_access_to_obj(
ret = OB_ERR_UNEXPECTED;
LOG_WARN("schema_mgr_ is NULL", K(ret), K(tenant_id),
K(user_id), K(obj_id));
} else if (GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_2260) {
} else {
if (is_ora_lbacsys_user(user_id) && is_lbca_op()) {
accessible = true;
} else {
@ -2693,39 +2693,6 @@ int ObSchemaChecker::check_access_to_obj(
return ret;
}
/* 为or repalce ddl定制,如果有replace选项,则需要增加一个drop的权限*/
// int ObSchemaChecker::check_ora_ddl_priv(
// const uint64_t tenant_id,
// const uint64_t user_id,
// const common::ObString &database_name,
// const bool is_replace,
// const stmt::StmtType stmt_type,
// const stmt::StmtType stmt_type2)
// {
// int ret = OB_SUCCESS;
// if (IS_NOT_INIT) {
// ret = OB_NOT_INIT;
// LOG_WARN("schema checker is not inited", K(is_inited_), K(ret));
// } else if (FALSE_IT(schema_mgr_ == NULL)) {
// } else if (GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_3000) {
// OZ (ObOraSysChecker::check_ora_ddl_priv(*schema_mgr_,
// tenant_id,
// user_id,
// database_name,
// stmt_type),
// K(tenant_id), K(user_id), K(database_name), K(stmt_type));
// if (OB_SUCC(ret) && is_replace) {
// OZ (ObOraSysChecker::check_ora_ddl_priv(*schema_mgr_,
// tenant_id,
// user_id,
// database_name,
// stmt_type2),
// K(tenant_id), K(user_id), K(database_name), K(stmt_type2));
// }
// }
// return ret;
// }
/* 对于一些ddl,系统权限可以,对象权限也可以。
例如:alter table
create index
@ -2746,20 +2713,18 @@ int ObSchemaChecker::check_ora_ddl_priv(
LOG_WARN("schema checker is not inited", K(is_inited_), K(ret));
} else if (schema_mgr_ == NULL) {
ret = OB_ERR_UNEXPECTED;
} else if (GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_2260) {
if (is_ora_lbacsys_user(user_id) && is_lbca_op()) {
// need not check
} else {
OZ (ObOraSysChecker::check_ora_ddl_priv(*schema_mgr_,
tenant_id,
user_id,
database_name,
obj_id,
obj_type,
stmt_type,
role_id_array),
K(tenant_id), K(user_id), K(database_name), K(obj_id), K(obj_type), K(stmt_type));
}
} else if (is_ora_lbacsys_user(user_id) && is_lbca_op()) {
// need not check
} else {
OZ (ObOraSysChecker::check_ora_ddl_priv(*schema_mgr_,
tenant_id,
user_id,
database_name,
obj_id,
obj_type,
stmt_type,
role_id_array),
K(tenant_id), K(user_id), K(database_name), K(obj_id), K(obj_type), K(stmt_type));
}
}
return ret;
@ -2788,41 +2753,39 @@ int ObSchemaChecker::check_ora_ddl_ref_priv(
} else if (OB_ISNULL(schema_mgr_)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("schema_mgr is nulll", K(ret));
} else if (GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_2260) {
if (OB_FAIL(get_user_id(tenant_id,
} else if (OB_FAIL(get_user_id(tenant_id,
user_name,
ObString(OB_DEFAULT_HOST_NAME),
user_id))) {
LOG_WARN("get_user_id failed", K(ret), K(user_name));
} else if (is_ora_lbacsys_user(user_id) && is_lbca_op()) {
// need not check
} else {
uint64_t table_id = OB_INVALID_ID;
ObArray<uint64_t> col_id_array;
const ObTableSchema *table_schema = NULL;
const ObColumnSchemaV2 *col_schema = NULL;
OZ (get_table_schema(tenant_id, database_name, table_name, false, table_schema),
K(database_name), K(table_name));
CK (OB_NOT_NULL(table_schema));
OX (table_id = table_schema->get_table_id());
for (int i = 0; OB_SUCC(ret) && i < column_name_array.count(); ++i) {
const ObString &col_name = column_name_array.at(i);
OX (col_schema = table_schema->get_column_schema(col_name));
CK (OB_NOT_NULL(col_schema));
OZ (col_id_array.push_back(col_schema->get_column_id()));
}
OZ (ObOraSysChecker::check_ora_ddl_ref_priv(*schema_mgr_,
tenant_id,
user_id,
database_name,
table_id,
col_id_array,
obj_type,
stmt_type,
role_id_array),
K(tenant_id), K(user_id), K(database_name),
K(table_id), K(col_id_array), K(obj_type), K(stmt_type));
LOG_WARN("get_user_id failed", K(ret), K(user_name));
} else if (is_ora_lbacsys_user(user_id) && is_lbca_op()) {
// need not check
} else {
uint64_t table_id = OB_INVALID_ID;
ObArray<uint64_t> col_id_array;
const ObTableSchema *table_schema = NULL;
const ObColumnSchemaV2 *col_schema = NULL;
OZ (get_table_schema(tenant_id, database_name, table_name, false, table_schema),
K(database_name), K(table_name));
CK (OB_NOT_NULL(table_schema));
OX (table_id = table_schema->get_table_id());
for (int i = 0; OB_SUCC(ret) && i < column_name_array.count(); ++i) {
const ObString &col_name = column_name_array.at(i);
OX (col_schema = table_schema->get_column_schema(col_name));
CK (OB_NOT_NULL(col_schema));
OZ (col_id_array.push_back(col_schema->get_column_id()));
}
OZ (ObOraSysChecker::check_ora_ddl_ref_priv(*schema_mgr_,
tenant_id,
user_id,
database_name,
table_id,
col_id_array,
obj_type,
stmt_type,
role_id_array),
K(tenant_id), K(user_id), K(database_name),
K(table_id), K(col_id_array), K(obj_type), K(stmt_type));
}
}
return ret;