add inner_same_as for udf func and remove useless GET_MIN_CLUSTER_VERSION

This commit is contained in:
Larry955
2022-11-16 07:35:39 +00:00
committed by wangzelin.wzl
parent 99d34dc07b
commit 8aee7d972f
34 changed files with 279 additions and 527 deletions

View File

@ -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 {
@ -2707,7 +2707,7 @@ int ObSchemaChecker::check_access_to_obj(
// 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) {
// } else {
// OZ (ObOraSysChecker::check_ora_ddl_priv(*schema_mgr_,
// tenant_id,
// user_id,
@ -2746,20 +2746,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 +2786,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;