
cn.schoolwow.quickdao.module.database.dcl.service.CreateDatabaseUserAndGrantFlow Maven / Gradle / Ivy
package cn.schoolwow.quickdao.module.database.dcl.service;
import cn.schoolwow.quickdao.domain.database.dcl.GrantOption;
import cn.schoolwow.quickdao.domain.database.parent.DatabaseType;
import cn.schoolwow.quickdao.module.database.parent.flow.executor.ExecuteUpdateConnectionFlow;
import cn.schoolwow.quickflow.domain.FlowContext;
import cn.schoolwow.quickflow.flow.BusinessFlow;
public class CreateDatabaseUserAndGrantFlow implements BusinessFlow {
@Override
public void executeBusinessFlow(FlowContext flowContext) throws Exception {
DatabaseType databaseType = flowContext.checkInstanceData(DatabaseType.class);
GrantOption grantOption = (GrantOption) flowContext.checkData("grantOption");
flowContext.putTemporaryData("name", "创建用户并授权");
switch (databaseType){
case Mysql:{
flowContext.startFlow(new ExecuteUpdateConnectionFlow())
.putTemporaryData("sql", "grant " + grantOption.privileges + " on " + grantOption.databaseName + ".* to '" + grantOption.dataBaseUser.username + "'@'" + grantOption.dataBaseUser.host + "' identified by '" + grantOption.dataBaseUser.password + "';")
.execute();
};break;
case Postgresql:{
flowContext.startFlow("postgre数据库创建用户并授权")
.putCurrentCompositeFlowData("dataBaseUser", grantOption.dataBaseUser)
.putCurrentCompositeFlowData("grantOption", grantOption)
.next(new CreateDatabaseUserFlow())
.next(new GrantFlow())
.execute();
};break;
default:{
throw new UnsupportedOperationException("当前数据库不支持创建用户并授权!数据库类型:"+databaseType.name());
}
}
}
@Override
public String name() {
return "创建用户并授权";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy