pick from master #41791
This commit is contained in:
@ -19,10 +19,14 @@ package org.apache.doris.analysis;
|
||||
|
||||
import org.apache.doris.catalog.Database;
|
||||
import org.apache.doris.catalog.EncryptKey;
|
||||
import org.apache.doris.catalog.Env;
|
||||
import org.apache.doris.catalog.Type;
|
||||
import org.apache.doris.common.AnalysisException;
|
||||
import org.apache.doris.common.ErrorCode;
|
||||
import org.apache.doris.common.ErrorReport;
|
||||
import org.apache.doris.datasource.InternalCatalog;
|
||||
import org.apache.doris.mysql.privilege.PrivPredicate;
|
||||
import org.apache.doris.qe.ConnectContext;
|
||||
import org.apache.doris.thrift.TExprNode;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
@ -55,6 +59,13 @@ public class EncryptKeyRef extends Expr {
|
||||
if ("".equals(dbName)) {
|
||||
ErrorReport.reportAnalysisException(ErrorCode.ERR_NO_DB_ERROR);
|
||||
} else {
|
||||
if (!Env.getCurrentEnv().getAccessManager()
|
||||
.checkDbPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME,
|
||||
dbName, PrivPredicate.SHOW)) {
|
||||
String message = ErrorCode.ERR_DB_ACCESS_DENIED_ERROR.formatErrorMsg(
|
||||
PrivPredicate.SHOW.getPrivs().toString(), dbName);
|
||||
throw new AnalysisException(message);
|
||||
}
|
||||
Database database = analyzer.getEnv().getInternalCatalog().getDbOrAnalysisException(dbName);
|
||||
|
||||
EncryptKey encryptKey = database.getEncryptKey(encryptKeyName.getKeyName());
|
||||
|
||||
@ -20,7 +20,10 @@ package org.apache.doris.nereids.rules.expression.rules;
|
||||
import org.apache.doris.catalog.EncryptKey;
|
||||
import org.apache.doris.catalog.Env;
|
||||
import org.apache.doris.cluster.ClusterNamespace;
|
||||
import org.apache.doris.common.ErrorCode;
|
||||
import org.apache.doris.common.util.DebugUtil;
|
||||
import org.apache.doris.datasource.InternalCatalog;
|
||||
import org.apache.doris.mysql.privilege.PrivPredicate;
|
||||
import org.apache.doris.nereids.exceptions.AnalysisException;
|
||||
import org.apache.doris.nereids.rules.expression.AbstractExpressionRewriteRule;
|
||||
import org.apache.doris.nereids.rules.expression.ExpressionListenerMatcher;
|
||||
@ -216,6 +219,13 @@ public class FoldConstantRuleOnFE extends AbstractExpressionRewriteRule
|
||||
if ("".equals(dbName)) {
|
||||
throw new AnalysisException("DB " + dbName + "not found");
|
||||
}
|
||||
if (!Env.getCurrentEnv().getAccessManager()
|
||||
.checkDbPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME,
|
||||
dbName, PrivPredicate.SHOW)) {
|
||||
String message = ErrorCode.ERR_DB_ACCESS_DENIED_ERROR.formatErrorMsg(
|
||||
PrivPredicate.SHOW.getPrivs().toString(), dbName);
|
||||
throw new AnalysisException(message);
|
||||
}
|
||||
org.apache.doris.catalog.Database database =
|
||||
Env.getCurrentEnv().getInternalCatalog().getDbNullable(dbName);
|
||||
if (database == null) {
|
||||
|
||||
Reference in New Issue
Block a user