[CP] implement system view user_users in oracle mode
This commit is contained in:
parent
e57016f91a
commit
17ceeb8c92
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user