diff --git a/src/share/inner_table/ob_inner_table_schema.25001_25050.cpp b/src/share/inner_table/ob_inner_table_schema.25001_25050.cpp index 60e0688667..71261fe014 100644 --- a/src/share/inner_table/ob_inner_table_schema.25001_25050.cpp +++ b/src/share/inner_table/ob_inner_table_schema.25001_25050.cpp @@ -410,7 +410,7 @@ int ObInnerTableSchema::dba_users_schema(ObTableSchema &table_schema) table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset())); if (OB_SUCC(ret)) { - if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT B.USER_NAME AS USERNAME, B.USER_ID AS USERID, B.PASSWD AS PASSWORD, CAST(CASE WHEN B.IS_LOCKED = 1 THEN 'LOCKED' ELSE 'OPEN' END as VARCHAR2(30)) AS ACCOUNT_STATUS, CAST(NULL as DATE) AS LOCK_DATE, CAST(NULL as DATE) AS EXPIRY_DATE, CAST(NULL as VARCHAR2(30)) AS DEFAULT_TABLESPACE, CAST(NULL as VARCHAR2(30)) AS TEMPORARY_TABLESPACE, CAST(B.GMT_CREATE AS DATE) AS CREATED, CAST(NULL as VARCHAR2(30)) AS INITIAL_RSRC_CONSUMER_GROUP, CAST(NULL as VARCHAR2(4000)) AS EXTERNAL_NAME FROM SYS.ALL_VIRTUAL_USER_REAL_AGENT B WHERE B.TYPE = 0 AND B.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT B.USER_NAME AS USERNAME, B.USER_ID AS USERID, B.PASSWD AS PASSWORD, CAST(CASE WHEN B.IS_LOCKED = 1 THEN 'LOCKED' ELSE 'OPEN' END as VARCHAR2(32)) AS ACCOUNT_STATUS, CAST(NULL as DATE) AS LOCK_DATE, CAST(NULL as DATE) AS EXPIRY_DATE, CAST(NULL as VARCHAR2(30)) AS DEFAULT_TABLESPACE, CAST(NULL as VARCHAR2(30)) AS TEMPORARY_TABLESPACE, CAST(NULL as VARCHAR2(30)) AS LOCAL_TEMP_TABLESPACE, CAST(B.GMT_CREATE AS DATE) AS CREATED, CAST(NVL(P.PROFILE_NAME, 'DEFAULT') AS VARCHAR2(128)) AS PROFILE, CAST(NULL as VARCHAR2(30)) AS INITIAL_RSRC_CONSUMER_GROUP, CAST(NULL as VARCHAR2(4000)) AS EXTERNAL_NAME, CAST(NULL as VARCHAR2(12)) AS PASSWORD_VERSIONS, CAST('N' as VARCHAR2(1)) AS EDITIONS_ENABLED, CAST('PASSWORD' as VARCHAR2(8)) AS AUTHENTICATION_TYPE, CAST('N' as VARCHAR2(1)) AS PROXY_ONLY_CONNECT, CAST('NO' as VARCHAR2(3)) AS COMMON, CAST(NULL as TIMESTAMP(9) WITH TIME ZONE) AS LAST_LOGIN, CAST('N' as VARCHAR2(1)) AS ORACLE_MAINTAINED, CAST('NO' as VARCHAR2(3)) AS INHERITED, CAST('USING_NLS_COMP' as VARCHAR2(100)) AS DEFAULT_COLLATION, CAST('NO' as VARCHAR2(3)) AS IMPLICIT, CAST('NO' as VARCHAR2(3)) AS ALL_SHARD, CAST(B.PASSWORD_LAST_CHANGED AS DATE) AS PASSWORD_CHANGE_DATE FROM SYS.ALL_VIRTUAL_USER_REAL_AGENT B LEFT JOIN SYS.ALL_VIRTUAL_TENANT_PROFILE_REAL_AGENT P ON B.TENANT_ID = P.TENANT_ID AND B.PROFILE_ID = P.PROFILE_ID WHERE B.TYPE = 0 AND B.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -460,7 +460,7 @@ int ObInnerTableSchema::all_users_schema(ObTableSchema &table_schema) table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset())); if (OB_SUCC(ret)) { - if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT B.USER_NAME AS USERNAME, B.USER_ID AS USERID, CAST(B.GMT_CREATE AS DATE) AS CREATED FROM SYS.ALL_VIRTUAL_USER_REAL_AGENT B WHERE B.TYPE = 0 AND B.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT B.USER_NAME AS USERNAME, B.USER_ID AS USERID, CAST(B.GMT_CREATE AS DATE) AS CREATED, CAST('NO' as VARCHAR2(3)) AS COMMON, CAST('N' as VARCHAR2(1)) AS ORACLE_MAINTAINED, CAST('NO' as VARCHAR2(3)) AS INHERITED, CAST('USING_NLS_COMP' as VARCHAR2(100)) AS DEFAULT_COLLATION, CAST('NO' as VARCHAR2(3)) AS IMPLICIT, CAST('NO' as VARCHAR2(3)) AS ALL_SHARD FROM SYS.ALL_VIRTUAL_USER_REAL_AGENT B WHERE B.TYPE = 0 AND B.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.25251_25300.cpp b/src/share/inner_table/ob_inner_table_schema.25251_25300.cpp index 33156050fb..e065372230 100644 --- a/src/share/inner_table/ob_inner_table_schema.25251_25300.cpp +++ b/src/share/inner_table/ob_inner_table_schema.25251_25300.cpp @@ -625,6 +625,56 @@ int ObInnerTableSchema::dba_ob_import_table_task_history_ora_schema(ObTableSchem return ret; } +int ObInnerTableSchema::user_users_schema(ObTableSchema &table_schema) +{ + int ret = OB_SUCCESS; + uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1; + + //generated fields: + table_schema.set_tenant_id(OB_SYS_TENANT_ID); + table_schema.set_tablegroup_id(OB_INVALID_ID); + table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID); + table_schema.set_table_id(OB_USER_USERS_TID); + table_schema.set_rowkey_split_pos(0); + table_schema.set_is_use_bloomfilter(false); + table_schema.set_progressive_merge_num(0); + table_schema.set_rowkey_column_num(0); + table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK); + table_schema.set_table_type(SYSTEM_VIEW); + table_schema.set_index_type(INDEX_TYPE_IS_NOT); + table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL); + + if (OB_SUCC(ret)) { + if (OB_FAIL(table_schema.set_table_name(OB_USER_USERS_TNAME))) { + LOG_ERROR("fail to set table_name", K(ret)); + } + } + + if (OB_SUCC(ret)) { + if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) { + LOG_ERROR("fail to set compress_func_name", K(ret)); + } + } + table_schema.set_part_level(PARTITION_LEVEL_ZERO); + table_schema.set_charset_type(ObCharset::get_default_charset()); + table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset())); + + if (OB_SUCC(ret)) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT B.USER_NAME AS USERNAME, B.USER_ID AS USERID, CAST(CASE WHEN B.IS_LOCKED = 1 THEN 'LOCKED' ELSE 'OPEN' END as VARCHAR2(32)) AS ACCOUNT_STATUS, CAST(NULL as DATE) AS LOCK_DATE, CAST(NULL as DATE) AS EXPIRY_DATE, CAST(NULL as VARCHAR2(30)) AS DEFAULT_TABLESPACE, CAST(NULL as VARCHAR2(30)) AS TEMPORARY_TABLESPACE, CAST(NULL as VARCHAR2(30)) AS LOCAL_TEMP_TABLESPACE, CAST(B.GMT_CREATE AS DATE) AS CREATED, CAST(NULL as VARCHAR2(30)) AS INITIAL_RSRC_CONSUMER_GROUP, CAST(NULL as VARCHAR2(4000)) AS EXTERNAL_NAME, CAST('N' as VARCHAR2(1)) AS PROXY_ONLY_CONNECT, CAST('NO' as VARCHAR2(3)) AS COMMON, CAST('N' as VARCHAR2(1)) AS ORACLE_MAINTAINED, CAST('NO' as VARCHAR2(3)) AS INHERITED, CAST('USING_NLS_COMP' as VARCHAR2(100)) AS DEFAULT_COLLATION, CAST('NO' as VARCHAR2(3)) AS IMPLICIT, CAST('NO' as VARCHAR2(3)) AS ALL_SHARD, CAST(B.PASSWORD_LAST_CHANGED AS DATE) AS PASSWORD_CHANGE_DATE FROM SYS.ALL_VIRTUAL_USER_REAL_AGENT B WHERE B.TYPE = 0 AND B.USER_NAME = SYS_CONTEXT('USERENV','CURRENT_USER') AND B.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { + LOG_ERROR("fail to set view_definition", K(ret)); + } + } + table_schema.set_index_using_type(USING_BTREE); + table_schema.set_row_store_type(ENCODING_ROW_STORE); + table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL); + table_schema.set_progressive_merge_round(1); + table_schema.set_storage_format_version(3); + table_schema.set_tablet_id(0); + + table_schema.set_max_used_column_id(column_id); + return ret; +} + } // end namespace share } // end namespace oceanbase diff --git a/src/share/inner_table/ob_inner_table_schema.h b/src/share/inner_table/ob_inner_table_schema.h index dbc59cf7cc..5bb9932b36 100644 --- a/src/share/inner_table/ob_inner_table_schema.h +++ b/src/share/inner_table/ob_inner_table_schema.h @@ -1828,6 +1828,7 @@ public: static int dba_ob_import_table_job_history_ora_schema(share::schema::ObTableSchema &table_schema); static int dba_ob_import_table_tasks_ora_schema(share::schema::ObTableSchema &table_schema); static int dba_ob_import_table_task_history_ora_schema(share::schema::ObTableSchema &table_schema); + static int user_users_schema(share::schema::ObTableSchema &table_schema); static int gv_ob_sql_audit_ora_schema(share::schema::ObTableSchema &table_schema); static int v_ob_sql_audit_ora_schema(share::schema::ObTableSchema &table_schema); static int gv_instance_schema(share::schema::ObTableSchema &table_schema); @@ -4360,6 +4361,7 @@ const schema_create_func sys_view_schema_creators [] = { ObInnerTableSchema::dba_ob_import_table_job_history_ora_schema, ObInnerTableSchema::dba_ob_import_table_tasks_ora_schema, ObInnerTableSchema::dba_ob_import_table_task_history_ora_schema, + ObInnerTableSchema::user_users_schema, ObInnerTableSchema::gv_ob_sql_audit_ora_schema, ObInnerTableSchema::v_ob_sql_audit_ora_schema, ObInnerTableSchema::gv_instance_schema, @@ -5856,6 +5858,7 @@ const uint64_t tenant_space_tables [] = { OB_DBA_OB_IMPORT_TABLE_JOB_HISTORY_ORA_TID, OB_DBA_OB_IMPORT_TABLE_TASKS_ORA_TID, OB_DBA_OB_IMPORT_TABLE_TASK_HISTORY_ORA_TID, + OB_USER_USERS_TID, OB_GV_OB_SQL_AUDIT_ORA_TID, OB_V_OB_SQL_AUDIT_ORA_TID, OB_GV_INSTANCE_TID, @@ -8180,6 +8183,7 @@ const char* const tenant_space_table_names [] = { OB_DBA_OB_IMPORT_TABLE_JOB_HISTORY_ORA_TNAME, OB_DBA_OB_IMPORT_TABLE_TASKS_ORA_TNAME, OB_DBA_OB_IMPORT_TABLE_TASK_HISTORY_ORA_TNAME, + OB_USER_USERS_TNAME, OB_GV_OB_SQL_AUDIT_ORA_TNAME, OB_V_OB_SQL_AUDIT_ORA_TNAME, OB_GV_INSTANCE_TNAME, @@ -11624,10 +11628,10 @@ static inline int get_sys_table_lob_aux_schema(const uint64_t tid, const int64_t OB_CORE_TABLE_COUNT = 4; const int64_t OB_SYS_TABLE_COUNT = 261; const int64_t OB_VIRTUAL_TABLE_COUNT = 742; -const int64_t OB_SYS_VIEW_COUNT = 788; -const int64_t OB_SYS_TENANT_TABLE_COUNT = 1796; +const int64_t OB_SYS_VIEW_COUNT = 789; +const int64_t OB_SYS_TENANT_TABLE_COUNT = 1797; const int64_t OB_CORE_SCHEMA_VERSION = 1; -const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 1799; +const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 1800; } // end namespace share } // end namespace oceanbase diff --git a/src/share/inner_table/ob_inner_table_schema_constants.h b/src/share/inner_table/ob_inner_table_schema_constants.h index 679c4a0b70..5fc1e8cea9 100644 --- a/src/share/inner_table/ob_inner_table_schema_constants.h +++ b/src/share/inner_table/ob_inner_table_schema_constants.h @@ -1564,6 +1564,7 @@ const uint64_t OB_DBA_OB_IMPORT_TABLE_JOBS_ORA_TID = 25264; // "DBA_OB_IMPORT_TA const uint64_t OB_DBA_OB_IMPORT_TABLE_JOB_HISTORY_ORA_TID = 25265; // "DBA_OB_IMPORT_TABLE_JOB_HISTORY_ORA" const uint64_t OB_DBA_OB_IMPORT_TABLE_TASKS_ORA_TID = 25266; // "DBA_OB_IMPORT_TABLE_TASKS_ORA" const uint64_t OB_DBA_OB_IMPORT_TABLE_TASK_HISTORY_ORA_TID = 25267; // "DBA_OB_IMPORT_TABLE_TASK_HISTORY_ORA" +const uint64_t OB_USER_USERS_TID = 25278; // "USER_USERS" const uint64_t OB_GV_OB_SQL_AUDIT_ORA_TID = 28002; // "GV$OB_SQL_AUDIT_ORA" const uint64_t OB_V_OB_SQL_AUDIT_ORA_TID = 28003; // "V$OB_SQL_AUDIT_ORA" const uint64_t OB_GV_INSTANCE_TID = 28004; // "GV$INSTANCE" @@ -3986,6 +3987,7 @@ const char *const OB_DBA_OB_IMPORT_TABLE_JOBS_ORA_TNAME = "DBA_OB_IMPORT_TABLE_J const char *const OB_DBA_OB_IMPORT_TABLE_JOB_HISTORY_ORA_TNAME = "DBA_OB_IMPORT_TABLE_JOB_HISTORY"; const char *const OB_DBA_OB_IMPORT_TABLE_TASKS_ORA_TNAME = "DBA_OB_IMPORT_TABLE_TASKS"; const char *const OB_DBA_OB_IMPORT_TABLE_TASK_HISTORY_ORA_TNAME = "DBA_OB_IMPORT_TABLE_TASK_HISTORY"; +const char *const OB_USER_USERS_TNAME = "USER_USERS"; const char *const OB_GV_OB_SQL_AUDIT_ORA_TNAME = "GV$OB_SQL_AUDIT"; const char *const OB_V_OB_SQL_AUDIT_ORA_TNAME = "V$OB_SQL_AUDIT"; const char *const OB_GV_INSTANCE_TNAME = "GV$INSTANCE"; diff --git a/src/share/inner_table/ob_inner_table_schema_def.py b/src/share/inner_table/ob_inner_table_schema_def.py index c87835e6c9..e367e7fe6b 100644 --- a/src/share/inner_table/ob_inner_table_schema_def.py +++ b/src/share/inner_table/ob_inner_table_schema_def.py @@ -31900,7 +31900,7 @@ def_table_schema( ) def_table_schema( - owner = 'xinqi.zlm', + owner = 'sean.yyj', table_name = 'DBA_USERS', database_id = 'OB_ORA_SYS_DATABASE_ID', table_id = '25008', @@ -31914,16 +31914,32 @@ def_table_schema( B.USER_NAME AS USERNAME, B.USER_ID AS USERID, B.PASSWD AS PASSWORD, - CAST(CASE WHEN B.IS_LOCKED = 1 THEN 'LOCKED' ELSE 'OPEN' END as VARCHAR2(30)) AS ACCOUNT_STATUS, + CAST(CASE WHEN B.IS_LOCKED = 1 THEN 'LOCKED' ELSE 'OPEN' END as VARCHAR2(32)) AS ACCOUNT_STATUS, CAST(NULL as DATE) AS LOCK_DATE, CAST(NULL as DATE) AS EXPIRY_DATE, CAST(NULL as VARCHAR2(30)) AS DEFAULT_TABLESPACE, CAST(NULL as VARCHAR2(30)) AS TEMPORARY_TABLESPACE, + CAST(NULL as VARCHAR2(30)) AS LOCAL_TEMP_TABLESPACE, CAST(B.GMT_CREATE AS DATE) AS CREATED, + CAST(NVL(P.PROFILE_NAME, 'DEFAULT') AS VARCHAR2(128)) AS PROFILE, CAST(NULL as VARCHAR2(30)) AS INITIAL_RSRC_CONSUMER_GROUP, - CAST(NULL as VARCHAR2(4000)) AS EXTERNAL_NAME + CAST(NULL as VARCHAR2(4000)) AS EXTERNAL_NAME, + CAST(NULL as VARCHAR2(12)) AS PASSWORD_VERSIONS, + CAST('N' as VARCHAR2(1)) AS EDITIONS_ENABLED, + CAST('PASSWORD' as VARCHAR2(8)) AS AUTHENTICATION_TYPE, + CAST('N' as VARCHAR2(1)) AS PROXY_ONLY_CONNECT, + CAST('NO' as VARCHAR2(3)) AS COMMON, + CAST(NULL as TIMESTAMP(9) WITH TIME ZONE) AS LAST_LOGIN, + CAST('N' as VARCHAR2(1)) AS ORACLE_MAINTAINED, + CAST('NO' as VARCHAR2(3)) AS INHERITED, + CAST('USING_NLS_COMP' as VARCHAR2(100)) AS DEFAULT_COLLATION, + CAST('NO' as VARCHAR2(3)) AS IMPLICIT, + CAST('NO' as VARCHAR2(3)) AS ALL_SHARD, + CAST(B.PASSWORD_LAST_CHANGED AS DATE) AS PASSWORD_CHANGE_DATE FROM SYS.ALL_VIRTUAL_USER_REAL_AGENT B + LEFT JOIN SYS.ALL_VIRTUAL_TENANT_PROFILE_REAL_AGENT P + ON B.TENANT_ID = P.TENANT_ID AND B.PROFILE_ID = P.PROFILE_ID WHERE B.TYPE = 0 AND B.TENANT_ID = EFFECTIVE_TENANT_ID() @@ -31931,7 +31947,7 @@ def_table_schema( ) def_table_schema( - owner = 'xinqi.zlm', + owner = 'sean.yyj', table_name = 'ALL_USERS', database_id = 'OB_ORA_SYS_DATABASE_ID', table_id = '25009', @@ -31944,7 +31960,13 @@ def_table_schema( SELECT B.USER_NAME AS USERNAME, B.USER_ID AS USERID, - CAST(B.GMT_CREATE AS DATE) AS CREATED + CAST(B.GMT_CREATE AS DATE) AS CREATED, + CAST('NO' as VARCHAR2(3)) AS COMMON, + CAST('N' as VARCHAR2(1)) AS ORACLE_MAINTAINED, + CAST('NO' as VARCHAR2(3)) AS INHERITED, + CAST('USING_NLS_COMP' as VARCHAR2(100)) AS DEFAULT_COLLATION, + CAST('NO' as VARCHAR2(3)) AS IMPLICIT, + CAST('NO' as VARCHAR2(3)) AS ALL_SHARD FROM SYS.ALL_VIRTUAL_USER_REAL_AGENT B WHERE @@ -48757,7 +48779,47 @@ def_table_schema( # 25275: DBA_OB_TRANSFER_PARTITION_TASKS # 25276: DBA_OB_TRANSFER_PARTITION_TASK_HISTORY # 25277: DBA_WR_SQLTEXT -# 25278: USER_USERS + +def_table_schema( + owner = 'sean.yyj', + table_name = 'USER_USERS', + database_id = 'OB_ORA_SYS_DATABASE_ID', + table_id = '25278', + table_type = 'SYSTEM_VIEW', + rowkey_columns = [], + normal_columns = [], + gm_columns = [], + in_tenant_space = True, + view_definition = """ + SELECT + B.USER_NAME AS USERNAME, + B.USER_ID AS USERID, + CAST(CASE WHEN B.IS_LOCKED = 1 THEN 'LOCKED' ELSE 'OPEN' END as VARCHAR2(32)) AS ACCOUNT_STATUS, + CAST(NULL as DATE) AS LOCK_DATE, + CAST(NULL as DATE) AS EXPIRY_DATE, + CAST(NULL as VARCHAR2(30)) AS DEFAULT_TABLESPACE, + CAST(NULL as VARCHAR2(30)) AS TEMPORARY_TABLESPACE, + CAST(NULL as VARCHAR2(30)) AS LOCAL_TEMP_TABLESPACE, + CAST(B.GMT_CREATE AS DATE) AS CREATED, + CAST(NULL as VARCHAR2(30)) AS INITIAL_RSRC_CONSUMER_GROUP, + CAST(NULL as VARCHAR2(4000)) AS EXTERNAL_NAME, + CAST('N' as VARCHAR2(1)) AS PROXY_ONLY_CONNECT, + CAST('NO' as VARCHAR2(3)) AS COMMON, + CAST('N' as VARCHAR2(1)) AS ORACLE_MAINTAINED, + CAST('NO' as VARCHAR2(3)) AS INHERITED, + CAST('USING_NLS_COMP' as VARCHAR2(100)) AS DEFAULT_COLLATION, + CAST('NO' as VARCHAR2(3)) AS IMPLICIT, + CAST('NO' as VARCHAR2(3)) AS ALL_SHARD, + CAST(B.PASSWORD_LAST_CHANGED AS DATE) AS PASSWORD_CHANGE_DATE + FROM + SYS.ALL_VIRTUAL_USER_REAL_AGENT B + WHERE + B.TYPE = 0 + AND B.USER_NAME = SYS_CONTEXT('USERENV','CURRENT_USER') + AND B.TENANT_ID = EFFECTIVE_TENANT_ID() +""".replace("\n", " ") +) + # 余留位置 #### End Data Dictionary View