<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>惜分飞 &#187; ORA-28194: Can perform read operations only</title>
	<atom:link href="https://www.xifenfei.com/tag/ora-28194-can-perform-read-operations-only/feed" rel="self" type="application/rss+xml" />
	<link>https://www.xifenfei.com</link>
	<description>提供7*24专业数据库(Oracle,SQL Server,MySQL,PostgreSQL等)恢复和技术支持@Tel:17813235971</description>
	<lastBuildDate>Sat, 07 Nov 2026 15:45:44 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Oracle read only用户&#8212;23ai新特性:只读用户</title>
		<link>https://www.xifenfei.com/2025/01/oracle-user-read-only.html</link>
		<comments>https://www.xifenfei.com/2025/01/oracle-user-read-only.html#comments</comments>
		<pubDate>Sat, 11 Jan 2025 13:57:22 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[Oracle 23ai]]></category>
		<category><![CDATA[ORA-28194]]></category>
		<category><![CDATA[ORA-28194: Can perform read operations only]]></category>
		<category><![CDATA[Oracle 只读用户]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=11115</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2025/01/oracle-user-read-only.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="xifenfeicopyright">
<p>联系：<a href="https://www.xifenfei.com/about_xifenfei" target="_blank">手机/微信(+86 17813235971)   QQ(107644445)</a><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes"><img src="https://www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"/></a></p>
<p>标题：<a href="https://www.xifenfei.com/2025/01/oracle-user-read-only.html" target="_blank">Oracle read only用户&#8212;23ai新特性:只读用户</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>23ai版本支持用户级别设置read only特性,对于在某些情况下,为了数据的一致性,是一个比较方便的特性,而不是以前版本通过权限控制实现只读,比如授权create session+表/视图等查询权限<br />
下面创建一个用户u_readonly,并授权dba权限,创建一个表进行测试</p>
<pre class="brush: sql; title: ; notranslate">
[oracle@xifenfei ~]$ ss

SQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Sat Jan 11 21:12:09 2025
Version 23.5.0.24.07

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
Version 23.5.0.24.07

SQL&gt; 
SQL&gt; select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud an
d Engineered Systems


SQL&gt; show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 XIFENFEI                       MOUNTED
SQL&gt; alter session set container=xifenfei;

Session altered.

SQL&gt; alter database open;

Database altered.

SQL&gt; create user u_readonly identified by oracle;

User created.

SQL&gt; grant dba to u_readonly;

Grant succeeded.

SQL&gt;  conn u_readonly/oracle@127.0.0.1/xifenfei
Connected.
SQL&gt; create table t_xff as select * from dba_objects;

Table created.

SQL&gt; select count(1) from t_xff;

  COUNT(1)
----------
     70951
</pre>
<p>修改用户为只读特性,然后进行dml/ddl操作会报ORA-28194: Can perform read operations only</p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; conn / as sysdba
Connected.
SQL&gt;  alter session set container=xifenfei;

Session altered.

SQL&gt; alter user u_readonly read only;

User altered.

SQL&gt; conn u_readonly/oracle@127.0.0.1/xifenfei
Connected.
SQL&gt; delete from t_xff;
delete from t_xff
            *
ERROR at line 1:
ORA-28194: Can perform read operations only


SQL&gt; insert into t_xff select * from dba_objects;
insert into t_xff select * from dba_objects
            *
ERROR at line 1:
ORA-28194: Can perform read operations only


SQL&gt; select count(1) from t_xff;

  COUNT(1)
----------
     70951

SQL&gt; create table t1 as select * from dba_users;
create table t1 as select * from dba_users
*
ERROR at line 1:
ORA-28194: Can perform read operations only
</pre>
<p>直接使用create user命令创建一个只读用户</p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt;  conn / as sysdba
Connected.
SQL&gt; alter session set container=xifenfei;

Session altered.

SQL&gt; create user u_readonly2 identified by oracle read only;

User created.

SQL&gt; grant dba to u_readonly2;

Grant succeeded.

SQL&gt;  conn u_readonly2/oracle@127.0.0.1/xifenfei
Connected.
SQL&gt; create table t_xifenfei as select * from dba_objects;
create table t_xifenfei as select * from dba_objects
*
ERROR at line 1:
ORA-28194: Can perform read operations only
</pre>
<p>修改只读用户为读写模式</p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; conn / as sysdba
Connected.
SQL&gt;  alter session set container=xifenfei;

Session altered.

SQL&gt; alter user u_readonly2 read write;

User altered.

SQL&gt; conn u_readonly2/oracle@127.0.0.1/xifenfei
Connected.
SQL&gt; create table t_xifenfei as select * from dba_objects;

Table created.

SQL&gt; delete from t_xifenfei where rownum&lt;100;

99 rows deleted.

SQL&gt; commit;

Commit complete.
</pre>
<p>查看用户是否处于只读状态</p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; select username,read_only from dba_users  where created&gt;sysdate-1;

USERNAME                       READ_O
------------------------------ ------
U_READONLY2                    NO
U_READONLY                     YES
</pre>
<p>在只读用户中，使用动态plsql直接直接dml也报ORA-28194: Can perform read operations only</p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; conn u_readonly/oracle@127.0.0.1/xifenfei
Connected.
SQL&gt; select count(1) from t_xff;

  COUNT(1)
----------
     70951

SQL&gt; delete from t_xff;
delete from t_xff
            *
ERROR at line 1:
ORA-28194: Can perform read operations only


SQL&gt; DECLARE   
  2      v_sql VARCHAR2(1000);
  3  BEGIN
  4      v_sql := 'delete from t_xff where rownum&lt;1000';
  5      EXECUTE IMMEDIATE v_sql;
  6  END;
  7  /
DECLARE
*
ERROR at line 1:
ORA-28194: Can perform read operations only
ORA-06512: at line 5
</pre>
<p>判断用户是否只读的底层基表属性user$.spare1</p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; conn / as sysdba
Connected.
SQL&gt; alter session set container=xifenfei;

Session altered.
SQL&gt; COL NAME FOR A30
SQL&gt;  select name,decode(bitand(spare1, 67108864), 67108864, 'YES', 'NO')
  2   read_only from user$ where name like 'U_READONLY%'
  3  /

NAME                           READ_O
------------------------------ ------
U_READONLY                     YES
U_READONLY2                    NO
</pre>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/07/grant-select-any-table-on-schema.html" rel="bookmark" class="crp_title">Oracle23ai新特性&#8212;SCHEMA级授权( grant select any table on schema)</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/03/%e6%8e%88%e6%9d%83%e7%94%a8%e6%88%b7%e8%ae%bf%e9%97%ae%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e4%b8%89%e7%a7%8d%e6%96%b9%e5%bc%8f.html" rel="bookmark" class="crp_title">授权用户访问数据字典三种方式</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2020/11/19c-root-pdb-undo-lost-recovery.html" rel="bookmark" class="crp_title">模拟19c数据库root pdb undo异常恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/02/dml-redirection.html" rel="bookmark" class="crp_title">Oracle 19C 备库DML重定向&#8212;DML Redirection</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2017/11/move-lob-index-unusable.html" rel="bookmark" class="crp_title">move lob导致index失效</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2015/04/11g-%e4%bd%bf%e7%94%a8-alter-user-identified-by-values-password-%e6%81%a2%e5%a4%8d%e5%8e%86%e5%8f%b2%e5%af%86%e7%a0%81.html" rel="bookmark" class="crp_title">11g 使用 alter user  identified by values password 恢复历史密码</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/10/tts%e5%ae%9e%e7%8e%b0%e8%b7%a8%e7%89%88%e6%9c%ac%e8%bf%81%e7%a7%bb%e6%95%b0%e6%8d%ae.html" rel="bookmark" class="crp_title">TTS实现跨版本迁移数据</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/12/oracle-10g%e7%bb%95%e8%bf%87%e5%af%86%e7%a0%81%e7%99%bb%e9%99%86%e6%95%b0%e6%8d%ae%e5%ba%93.html" rel="bookmark" class="crp_title">Oracle 10g绕过密码登陆数据库</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2015/05/%e9%80%9a%e8%bf%87with%e5%ae%9e%e7%8e%b0%e5%af%b9%e8%a1%a8%e9%9d%9e%e6%b3%95dml%e6%93%8d%e4%bd%9c-%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88.html" rel="bookmark" class="crp_title">通过with实现对表非法dml操作&#8212;解决方案_with_subquery=materialize或者psu(2014.07以后)</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2023/04/update-user-ora-01031.html" rel="bookmark" class="crp_title">update user$报ORA-01031错误</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/08/ora-01031-insufficient-privileges.html" rel="bookmark" class="crp_title">ORA-01031: insufficient privileges</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/11/oracle%e5%b8%b8%e7%94%a8%e7%94%a8%e6%88%b7%e6%9d%83%e9%99%90%e8%a7%86%e5%9b%be.html" rel="bookmark" class="crp_title">Oracle常用用户权限视图</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2025/01/oracle-user-read-only.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
