fix grant privileges on information_schema.* to user
This commit is contained in:
@ -3054,7 +3054,8 @@ int ObPrivilegeCheck::can_do_grant_on_db_table(
|
|||||||
|| 0 == db_name.case_compare(OB_RECYCLEBIN_SCHEMA_NAME)
|
|| 0 == db_name.case_compare(OB_RECYCLEBIN_SCHEMA_NAME)
|
||||||
|| 0 == db_name.case_compare(OB_PUBLIC_SCHEMA_NAME)
|
|| 0 == db_name.case_compare(OB_PUBLIC_SCHEMA_NAME)
|
||||||
|| 0 == db_name.case_compare(OB_SYS_DATABASE_NAME)) {
|
|| 0 == db_name.case_compare(OB_SYS_DATABASE_NAME)) {
|
||||||
if (OB_PRIV_HAS_OTHER(priv_set, OB_PRIV_SELECT)) {
|
if (0 == db_name.case_compare(OB_INFORMATION_SCHEMA_NAME)
|
||||||
|
|| OB_PRIV_HAS_OTHER(priv_set, OB_PRIV_SELECT)) {
|
||||||
ret = OB_ERR_NO_DB_PRIVILEGE;
|
ret = OB_ERR_NO_DB_PRIVILEGE;
|
||||||
LOG_USER_ERROR(OB_ERR_NO_DB_PRIVILEGE, session_priv.user_name_.length(), session_priv.user_name_.ptr(),
|
LOG_USER_ERROR(OB_ERR_NO_DB_PRIVILEGE, session_priv.user_name_.length(), session_priv.user_name_.ptr(),
|
||||||
session_priv.host_name_.length(),session_priv.host_name_.ptr(),
|
session_priv.host_name_.length(),session_priv.host_name_.ptr(),
|
||||||
@ -3070,6 +3071,13 @@ int ObPrivilegeCheck::can_do_grant_on_db_table(
|
|||||||
table_name.length(), table_name.ptr());
|
table_name.length(), table_name.ptr());
|
||||||
}
|
}
|
||||||
} else { }//do nothing
|
} else { }//do nothing
|
||||||
|
} else {
|
||||||
|
if (0 == db_name.case_compare(OB_INFORMATION_SCHEMA_NAME)) {
|
||||||
|
ret = OB_ERR_NO_DB_PRIVILEGE;
|
||||||
|
LOG_USER_ERROR(OB_ERR_NO_DB_PRIVILEGE, session_priv.user_name_.length(), session_priv.user_name_.ptr(),
|
||||||
|
session_priv.host_name_.length(),session_priv.host_name_.ptr(),
|
||||||
|
db_name.length(), db_name.ptr());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user