您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Oracle中查找架构名称?当您使用只读用户在sql会话中连接时

如何在Oracle中查找架构名称?当您使用只读用户在sql会话中连接时

要创建只读用户,您必须设置与拥有要访问的表的用户不同的用户

如果仅创建用户并向只读用户授予SELECT权限,则需要在每个表名之前添加模式名。为了避免这种情况,您基本上有两个选择:

在会话中设置 当前模式

ALTER SESSION SET CURRENT_SCHEMA=XYZ

为所有表创建同义词:

CREATE SYNONYM READER_USER.TABLE1 FOR XYZ.TABLE1

因此,如果您没有被告知所有者模式的名称,则基本上可以使用三个选项。最后一个应该一直有效:

查询当前架构设置:

SELECT SYS_CONTEXT(‘USERENV’,’CURRENT_SCHEMA’) FROM DUAL

列出您的同义词:

SELECT * FROM ALL_SYNONYMS WHERE OWNER = USER

研究所有表(某些著名的标准架构除外):

SELECT * FROM ALL_TABLES WHERE OWNER NOT IN (‘SYS’, ‘SYstem’, ‘CTXSYS’, ‘MDSYS’);

SQLServer 2022/1/1 18:46:25 有589人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶