diff --git a/backend/modules/src/main/java/org.jumpserver.chen.modules/oracle/OracleActionHandler.java b/backend/modules/src/main/java/org.jumpserver.chen.modules/oracle/OracleActionHandler.java index cd24f197..e6d9a409 100644 --- a/backend/modules/src/main/java/org.jumpserver.chen.modules/oracle/OracleActionHandler.java +++ b/backend/modules/src/main/java/org.jumpserver.chen.modules/oracle/OracleActionHandler.java @@ -14,6 +14,28 @@ @Slf4j public class OracleActionHandler extends BaseActionHandler { + @Override + public List getSchemaActions(TreeNode node) { + return List.of( + Action.builder() + .label(MessageUtils.get("Refresh")) + .key("refresh_node") + .divided(true) + .icon("el-icon-refresh") + .build(), + Action.builder() + .label(MessageUtils.get("NewQuery")) + .key("new_query") + .icon("el-icon-search") + .build(), + Action.builder() + .label(MessageUtils.get("ShowProperties")) + .key("show_properties") + .icon("fa fa-align-justify") + .build() + ); + } + @Override public List getTableActions(TreeNode node) { return List.of( diff --git a/backend/modules/src/main/java/org.jumpserver.chen.modules/oracle/OracleMetadataProvider.java b/backend/modules/src/main/java/org.jumpserver.chen.modules/oracle/OracleMetadataProvider.java index 7a14a026..f43cbe7c 100644 --- a/backend/modules/src/main/java/org.jumpserver.chen.modules/oracle/OracleMetadataProvider.java +++ b/backend/modules/src/main/java/org.jumpserver.chen.modules/oracle/OracleMetadataProvider.java @@ -15,6 +15,9 @@ import org.jumpserver.chen.framework.datasource.metadata.RelationMetadata; import org.jumpserver.chen.framework.datasource.metadata.RelationScope; import org.jumpserver.chen.framework.datasource.metadata.SchemaMetadata; +import org.jumpserver.chen.framework.datasource.metadata.ScopeKind; +import org.jumpserver.chen.framework.datasource.metadata.ScopeProperties; +import org.jumpserver.chen.framework.datasource.metadata.ScopeRef; import java.sql.SQLException; import java.util.ArrayList; @@ -223,11 +226,25 @@ public List listStatistics(RelationScope scope) throws SQLExce WHERE OWNER = ? AND TABLE_NAME = ? AND TABLESPACE_NAME IS NOT NULL """; + private static final String SQL_SCHEMA_PROPERTIES = """ + SELECT USERNAME, USER_ID, CREATED + FROM ALL_USERS + WHERE USERNAME = ? + """; + @Override public ObjectProperties objectProperties(ObjectRef ref) throws SQLException { return loadObjectProperties(ref, SQL_TABLE_PROPERTIES); } + @Override + public ScopeProperties scopeProperties(ScopeRef ref) throws SQLException { + if (ref.kind() != ScopeKind.SCHEMA) { + return super.scopeProperties(ref); + } + return loadScopeProperties(ref, SQL_SCHEMA_PROPERTIES, List.of(ref.scope().schema())); + } + private static final String SQL_PRIMARY_KEYS = """ SELECT c.table_name AS table_name, cc.column_name AS column_name, c.constraint_name AS name FROM all_constraints c