我有一个包含3个并集的视图,合并了来自4个不同数据库的数据集。如果用户有权访问所有4个数据库,则该方法工作正常,但如果用户无权访问所查询的任何一个数据库,则该方法确实会失败。有没有一种方法可以使查询仅从他们有权访问的数据库中返回数据而不会失败?
类似这样的东西:
IF USERACCESS TO DB1 = TRUE
(SELECT A,B,C
FROM DB1..TABLE1
UNION ALL
)
IF USERACCESS TO DB2 = TRUE
(SELECT A,B,C
FROM DB2..TABLE1
UNION ALL
)
IF USERACCESS TO DB3 = TRUE
(SELECT A,B,C
FROM DB3..TABLE1
)