Change owner from 'PUBLIC' to '__public' about public synonym in all_synonyms and dba_synonyms.
This commit is contained in:
@ -60,7 +60,7 @@ int ObInnerTableSchema::dba_synonyms_schema(ObTableSchema &table_schema)
|
|||||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CASE WHEN A.DATABASE_NAME = '__public' THEN 'PUBLIC' ELSE A.DATABASE_NAME END AS OWNER, A.SYNONYM_NAME AS SYNONYM_NAME, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN B.DATABASE_NAME ELSE SUBSTR(A.OBJECT_NAME, 1, INSTR(A.OBJECT_NAME, '.') -1) END AS VARCHAR2(128)) AS TABLE_OWNER, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN A.OBJECT_NAME ELSE SUBSTR(A.OBJECT_NAME, INSTR(A.OBJECT_NAME, '.') + 1, INSTR(A.OBJECT_NAME, '@') - INSTR(A.OBJECT_NAME, '.') -1) END AS VARCHAR2(128)) AS TABLE_NAME, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN NULL ELSE SUBSTR(A.OBJECT_NAME, INSTR(A.OBJECT_NAME, '@')+1) END AS VARCHAR2(128)) AS DB_LINK FROM (SELECT BB.DATABASE_NAME, AA.SYNONYM_NAME, AA.OBJECT_NAME, AA.SYNONYM_ID FROM SYS.ALL_VIRTUAL_SYNONYM_REAL_AGENT AA, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT BB WHERE AA.DATABASE_ID = BB.DATABASE_ID AND AA.TENANT_ID = EFFECTIVE_TENANT_ID() AND BB.TENANT_ID = EFFECTIVE_TENANT_ID()) A, (SELECT BB.DATABASE_NAME, AA.SYNONYM_ID FROM SYS.ALL_VIRTUAL_SYNONYM_REAL_AGENT AA, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT BB WHERE AA.OBJECT_DATABASE_ID = BB.DATABASE_ID AND AA.TENANT_ID = EFFECTIVE_TENANT_ID() AND BB.TENANT_ID = EFFECTIVE_TENANT_ID()) B WHERE A.SYNONYM_ID = B.SYNONYM_ID )__"))) {
|
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.DATABASE_NAME AS OWNER, A.SYNONYM_NAME AS SYNONYM_NAME, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN B.DATABASE_NAME ELSE SUBSTR(A.OBJECT_NAME, 1, INSTR(A.OBJECT_NAME, '.') -1) END AS VARCHAR2(128)) AS TABLE_OWNER, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN A.OBJECT_NAME ELSE SUBSTR(A.OBJECT_NAME, INSTR(A.OBJECT_NAME, '.') + 1, INSTR(A.OBJECT_NAME, '@') - INSTR(A.OBJECT_NAME, '.') -1) END AS VARCHAR2(128)) AS TABLE_NAME, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN NULL ELSE SUBSTR(A.OBJECT_NAME, INSTR(A.OBJECT_NAME, '@')+1) END AS VARCHAR2(128)) AS DB_LINK FROM (SELECT BB.DATABASE_NAME, AA.SYNONYM_NAME, AA.OBJECT_NAME, AA.SYNONYM_ID FROM SYS.ALL_VIRTUAL_SYNONYM_REAL_AGENT AA, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT BB WHERE AA.DATABASE_ID = BB.DATABASE_ID AND AA.TENANT_ID = EFFECTIVE_TENANT_ID() AND BB.TENANT_ID = EFFECTIVE_TENANT_ID()) A, (SELECT BB.DATABASE_NAME, AA.SYNONYM_ID FROM SYS.ALL_VIRTUAL_SYNONYM_REAL_AGENT AA, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT BB WHERE AA.OBJECT_DATABASE_ID = BB.DATABASE_ID AND AA.TENANT_ID = EFFECTIVE_TENANT_ID() AND BB.TENANT_ID = EFFECTIVE_TENANT_ID()) B WHERE A.SYNONYM_ID = B.SYNONYM_ID )__"))) {
|
||||||
LOG_ERROR("fail to set view_definition", K(ret));
|
LOG_ERROR("fail to set view_definition", K(ret));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -510,7 +510,7 @@ int ObInnerTableSchema::all_synonyms_schema(ObTableSchema &table_schema)
|
|||||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CASE WHEN A.DATABASE_NAME = '__public' THEN 'PUBLIC' ELSE A.DATABASE_NAME END AS OWNER, A.SYNONYM_NAME AS SYNONYM_NAME, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN B.DATABASE_NAME ELSE SUBSTR(A.OBJECT_NAME, 1, INSTR(A.OBJECT_NAME, '.') -1) END AS VARCHAR2(128)) AS TABLE_OWNER, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN A.OBJECT_NAME ELSE SUBSTR(A.OBJECT_NAME, INSTR(A.OBJECT_NAME, '.') + 1, INSTR(A.OBJECT_NAME, '@') - INSTR(A.OBJECT_NAME, '.') -1) END AS VARCHAR2(128)) AS TABLE_NAME, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN NULL ELSE SUBSTR(A.OBJECT_NAME, INSTR(A.OBJECT_NAME, '@')+1) END AS VARCHAR2(128)) AS DB_LINK FROM (SELECT BB.DATABASE_NAME, AA.SYNONYM_NAME, AA.OBJECT_NAME, AA.SYNONYM_ID FROM SYS.ALL_VIRTUAL_SYNONYM_REAL_AGENT AA, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT BB WHERE AA.DATABASE_ID = BB.DATABASE_ID AND AA.TENANT_ID = BB.TENANT_ID AND AA.TENANT_ID = EFFECTIVE_TENANT_ID() AND (AA.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(13, AA.SYNONYM_ID, AA.DATABASE_ID) = 1)) A, (SELECT BB.DATABASE_NAME, AA.SYNONYM_ID FROM SYS.ALL_VIRTUAL_SYNONYM_REAL_AGENT AA, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT BB WHERE AA.OBJECT_DATABASE_ID = BB.DATABASE_ID AND AA.TENANT_ID = BB.TENANT_ID AND AA.TENANT_ID = EFFECTIVE_TENANT_ID() AND (AA.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(13, AA.SYNONYM_ID, AA.DATABASE_ID) = 1)) B WHERE A.SYNONYM_ID = B.SYNONYM_ID )__"))) {
|
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.DATABASE_NAME AS OWNER, A.SYNONYM_NAME AS SYNONYM_NAME, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN B.DATABASE_NAME ELSE SUBSTR(A.OBJECT_NAME, 1, INSTR(A.OBJECT_NAME, '.') -1) END AS VARCHAR2(128)) AS TABLE_OWNER, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN A.OBJECT_NAME ELSE SUBSTR(A.OBJECT_NAME, INSTR(A.OBJECT_NAME, '.') + 1, INSTR(A.OBJECT_NAME, '@') - INSTR(A.OBJECT_NAME, '.') -1) END AS VARCHAR2(128)) AS TABLE_NAME, CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0 THEN NULL ELSE SUBSTR(A.OBJECT_NAME, INSTR(A.OBJECT_NAME, '@')+1) END AS VARCHAR2(128)) AS DB_LINK FROM (SELECT BB.DATABASE_NAME, AA.SYNONYM_NAME, AA.OBJECT_NAME, AA.SYNONYM_ID FROM SYS.ALL_VIRTUAL_SYNONYM_REAL_AGENT AA, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT BB WHERE AA.DATABASE_ID = BB.DATABASE_ID AND AA.TENANT_ID = BB.TENANT_ID AND AA.TENANT_ID = EFFECTIVE_TENANT_ID() AND (AA.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(13, AA.SYNONYM_ID, AA.DATABASE_ID) = 1)) A, (SELECT BB.DATABASE_NAME, AA.SYNONYM_ID FROM SYS.ALL_VIRTUAL_SYNONYM_REAL_AGENT AA, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT BB WHERE AA.OBJECT_DATABASE_ID = BB.DATABASE_ID AND AA.TENANT_ID = BB.TENANT_ID AND AA.TENANT_ID = EFFECTIVE_TENANT_ID() AND (AA.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(13, AA.SYNONYM_ID, AA.DATABASE_ID) = 1)) B WHERE A.SYNONYM_ID = B.SYNONYM_ID )__"))) {
|
||||||
LOG_ERROR("fail to set view_definition", K(ret));
|
LOG_ERROR("fail to set view_definition", K(ret));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26017,9 +26017,7 @@ def_table_schema(
|
|||||||
in_tenant_space = True,
|
in_tenant_space = True,
|
||||||
view_definition = """
|
view_definition = """
|
||||||
SELECT
|
SELECT
|
||||||
CASE WHEN
|
A.DATABASE_NAME AS OWNER,
|
||||||
A.DATABASE_NAME = '__public' THEN
|
|
||||||
'PUBLIC' ELSE A.DATABASE_NAME END AS OWNER,
|
|
||||||
A.SYNONYM_NAME AS SYNONYM_NAME,
|
A.SYNONYM_NAME AS SYNONYM_NAME,
|
||||||
CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0
|
CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0
|
||||||
THEN B.DATABASE_NAME
|
THEN B.DATABASE_NAME
|
||||||
@ -27873,9 +27871,7 @@ def_table_schema(
|
|||||||
in_tenant_space = True,
|
in_tenant_space = True,
|
||||||
view_definition = """
|
view_definition = """
|
||||||
SELECT
|
SELECT
|
||||||
CASE WHEN
|
A.DATABASE_NAME AS OWNER,
|
||||||
A.DATABASE_NAME = '__public' THEN
|
|
||||||
'PUBLIC' ELSE A.DATABASE_NAME END AS OWNER,
|
|
||||||
A.SYNONYM_NAME AS SYNONYM_NAME,
|
A.SYNONYM_NAME AS SYNONYM_NAME,
|
||||||
CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0
|
CAST(CASE WHEN INSTR(A.OBJECT_NAME, '@') = 0
|
||||||
THEN B.DATABASE_NAME
|
THEN B.DATABASE_NAME
|
||||||
|
Reference in New Issue
Block a user