关于select访问数据库的一点建议

举例,我当前使用root用户连接,位于test数据库,写select语句查询oceanbase库的表时,我必须使用"oceanbase.表名"这样方式才能查,即使我当前用户对oceanbase数据库有访问权限。
能否改为select语句直接可以在访问权限范围内访问全部表,而不用非得加数据库名,dml语句等则继续保持默认写入当前数据库?类似于oracle的v$session等视图,只需要用户拥有select any dictionary权限即可访问这些视图。
当前我用的租户模式时mysql

如果你想查询类似于oracle的系统信息,可以使用information_schema.tables 视图来获取表的信息,如下所示:SELECT * FROM information_schema.tables WHERE table_schema = ‘oceanbase’;
通常需要指定完整的数据库名和表名,如database_name.table_name,或者比如切换到use oceanbase库 然后进行查询。

这个需求感觉有点难吧。

OB之所以有mysql和oracle两种模式, 就是为了让熟悉mysql的人继续用mysql模式,让熟悉oracle的人继续用oracle模式。

oracle数据库中,普通的用户也能访问v$session这类视图,是因为有public公用权限, 而mysql数据库中完成没有这个。

个人感觉,没有必要强求一致。

2 个赞