欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > oracle 创建只可以查询权限用户+sqldeveloper如何看到对应表

oracle 创建只可以查询权限用户+sqldeveloper如何看到对应表

2025/9/16 1:33:49 来源:https://blog.csdn.net/luohai326/article/details/144095592  浏览:    关键词:oracle 创建只可以查询权限用户+sqldeveloper如何看到对应表
声明 

申明部分是从其他csdn用户哪里复制的,只是自己操作后发现无法达到我最后的预期,所以关闭忘记是看的那篇了,如果有侵权请见谅,联系我删除谢谢。

好了,故事的开始是我最近删投产表了。没错职业黑点,清除了投产表数据。。。真的悲催。差点被开除了。

DB的操作还是要权限分开,不然那天一恍惚,或者那个人不爽,分分钟删库走人就麻烦了。所以就想起了还是要把查询和 删除、修改的用户权限分开。最起码投产删除和修改操作得要走一下流程确认一下才给去执行。 接下来开始了。

创建查询权限的用户

1. 创建查询权限的用户

以具有适当权限的用户登录:

使用具有CREATE USER和GRANT权限的用户登录到Oracle数据库。

登录主机切换oracle用户

su - oraclesqlplus /nologconn /as sysdba;

2. 创建用户:

使用CREATE USER语句创建用户。在此语句中,你可以指定用户名和密码。

CREATE USER your_username IDENTIFIED BY your_password;

3. 授权登录权限

grant connect to your_username ;

4. 授予对应schema_name的查询权限:

查询对应的schema_name,使用有dba对应表空间或者schema_name权限的用户使用 sqldeveloper登录后执行:

SELECT USER AS schema_name FROM dual;

5. 使用GRANT语句授予查询权限。通常,查询权限是通过SELECT权限来实现的。

 这个是批量所有表的操作脚本,之前看到说可以 grant  select schema_name.* on user,但是我发现不行会报错。所以用下面的。感觉还可以。

BEGINFOR t IN (SELECT table_name FROM all_tables WHERE owner = 'schema_name') LOOPEXECUTE IMMEDIATE 'GRANT SELECT ON schema_name.' || t.table_name || ' TO your_username';END LOOP;END;/

注明:千万记得最后一个 / 是需要的。

在sqldeveloper中使用和看到对应表结构等信息

-----这个是我之前在网上查不到的哈哈,可能是我太菜了,上图.

 正常链接后,sqldeveloper 模式是使用当期用户的 用户名作为 schema_name进行登录查询的。 

解释一下 一般建立用户后oracle默认会给对应用户创建一个 schema_name。 一个schema_name 只可以对应一个用户。

这个时候你要去对应【其他用户】那里去看,然后在那个里面找到你授权的 schema_name(也就是全量权限的用户)

当然只有你授权给这个用户的 schema_name 对应下面的表才看的到。 

在sqldeveloper 里面如果要查询就要使用对应 schema_name.table_name 的方式进行查询。

比如我在 schema_name Test 里面有一个 testtbl的表我要查询语句如下:

select * form Test.testtbl ;

本文只是自己记录。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词