<?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>白名单 &#8211; 良的世界</title>
	<atom:link href="https://www.lemonary.cn/tag/%e7%99%bd%e5%90%8d%e5%8d%95/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.lemonary.cn</link>
	<description></description>
	<lastBuildDate>Thu, 27 Mar 2025 07:02:27 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.lemonary.cn/wp-content/uploads/2024/12/profile-150x150.jpg</url>
	<title>白名单 &#8211; 良的世界</title>
	<link>https://www.lemonary.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>案例：达梦数据库限制白名单导致自身无法登录的一次紧急恢复</title>
		<link>https://www.lemonary.cn/%e8%be%be%e6%a2%a6%e6%95%b0%e6%8d%ae%e5%ba%93%e9%99%90%e5%88%b6%e7%99%bd%e5%90%8d%e5%8d%95%e5%af%bc%e8%87%b4%e8%87%aa%e8%ba%ab%e6%97%a0%e6%b3%95%e7%99%bb%e5%bd%95/</link>
					<comments>https://www.lemonary.cn/%e8%be%be%e6%a2%a6%e6%95%b0%e6%8d%ae%e5%ba%93%e9%99%90%e5%88%b6%e7%99%bd%e5%90%8d%e5%8d%95%e5%af%bc%e8%87%b4%e8%87%aa%e8%ba%ab%e6%97%a0%e6%b3%95%e7%99%bb%e5%bd%95/#respond</comments>
		
		<dc:creator><![CDATA[shine]]></dc:creator>
		<pubDate>Thu, 12 Dec 2024 02:47:50 +0000</pubDate>
				<category><![CDATA[DM]]></category>
		<category><![CDATA[白名单]]></category>
		<guid isPermaLink="false">https://www.lemonary.cn/?p=960</guid>

					<description><![CDATA[原文链接：https://eco.dameng.com/community/article/ede678e2d [&#8230;]]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">原文链接：<a href="https://eco.dameng.com/community/article/ede678e2d412f9b56a239bc3e574e311">https://eco.dameng.com/community/article/ede678e2d412f9b56a239bc3e574e311</a></p>
</blockquote>



<h2 class="wp-block-heading" id="一、事件背景">一、事件背景</h2>



<p class="wp-block-paragraph">在一次配合应用开发商进行安全加固时，用户提出了需要对连接数据库的IP进行白名单配置，对于业务用户仅支持应用节点IP登录，对此我们提供了alter user的模板SQL对用户的网络白名单进行限制：</p>



<pre class="wp-block-code"><code>alter user "SYSDBA" allow_ip "192.168.100.11";</code></pre>



<p class="wp-block-paragraph">但是当配置多个IP时需要将IP以逗号隔开，否则会不断刷新可连接的网络，且只保留最后一个。</p>



<h2 class="wp-block-heading" id="二、事件经过">二、事件经过</h2>



<p class="wp-block-paragraph">应用开发商在处理该问题时，没有将用户名修改为业务用户，而是直接对SYSDBA用户进行的操作，在执行的时候恰恰选择了上述错误的方式。</p>



<pre class="wp-block-code"><code>alter user "SYSDBA" allow_ip "192.168.100.11";
alter user "SYSDBA" allow_ip "192.168.100.12";
alter user "SYSDBA" allow_ip "192.168.100.13";
alter user "SYSDBA" allow_ip "192.168.100.14";
alter user "SYSDBA" allow_ip "192.168.100.15";
alter user "SYSDBA" allow_ip "192.168.100.16";
alter user "SYSDBA" allow_ip "192.168.100.17";
...
exit;</code></pre>



<p class="wp-block-paragraph">且用SYSDBA用户在disql执行完成后退出了以上会话。<br>直接导致了SYSDBA在本地也无法登录。</p>



<p class="wp-block-paragraph">此时在数据库服务器本地使用disql登录127.0.0.1也无法登录。</p>



<pre class="wp-block-code"><code>&#91;dmdba@dsc_131 bin]$ ./disql SYSDBA/SYSDBA@127.0.0.1
&#91;-2158]:无效的IP.
disql V8
用户名:^C</code></pre>



<p class="wp-block-paragraph">而要将网络白名单限制取消又需要DBA权限对SYSDBA用户进行操作，恰巧又没有创建其他具有DBA权限的用户。</p>



<h2 class="wp-block-heading" id="三、事件解决">三、事件解决</h2>



<p class="wp-block-paragraph">以上操作做完之后出现死循环了，有DBA权限的SYSDBA用户无法登录，而能登录的用户又无法操作修改DBA的网络白名单。<br>针对这种误操作的问题，现场采用的是Linux虚拟网卡绑定IP来处理，唯一的问题在于，在执行了多次alter user后无法确认最终允许的IP。<br>普通用户查询的SYSUSERS视图无法显示SYSDBA用户的网络白名单。最终在系统默认的用户里面，还可以用审计用户SYSAUDITOR去查询。</p>



<pre class="wp-block-code"><code>SQL&gt; SELECT ALLOW_ADDR,NOT_ALLOW_ADDR FROM SYSUSERS;

行号     ALLOW_ADDR     NOT_ALLOW_ADDR
---------- -------------- --------------
1          NULL           NULL
2          NULL           NULL
3          192.168.100.88 NULL
4          NULL           NULL
5                         

已用时间: 50.978(毫秒). 执行号:4100.
SQL&gt; exit</code></pre>



<p class="wp-block-paragraph">至此我们找到了这个白名单列表的IP地址。<br>接下来我们使用Linux的添加虚拟IP的方式，在本地虚拟一个IP为白名单列表的IP地址。</p>



<p class="wp-block-paragraph">例如我在本地的ens33这个网卡上虚拟一个IP地址出来：</p>



<pre class="wp-block-code"><code>&#91;root@dameng bin]$ ifconfig ens33:1 192.168.100.88 up</code></pre>



<p class="wp-block-paragraph">再尝试用SYSDBA用户登录，此时登录成功后，再将SYSDBA用户的网络白名单取消即可。</p>



<pre class="wp-block-code"><code>SQL&gt; alter user "SYSDBA" allow_ip null;
操作已执行
已用时间: 21.248(毫秒). 执行号:4200.
SQL&gt;exit;
最后将本地虚拟的这个IP删除
&#91;root@dameng bin]$ ifconfig ens33:1 192.168.100.88 down</code></pre>



<h2 class="wp-block-heading">备注</h2>



<p class="wp-block-paragraph">查询所有用户的白名单与黑名单配置</p>



<pre class="wp-block-code"><code>SELECT ALLOW_ADDR,NOT_ALLOW_ADDR,USERNAME FROM SYSUSERS A,DBA_USERS B WHERE A.ID=B.USER_ID;</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.lemonary.cn/%e8%be%be%e6%a2%a6%e6%95%b0%e6%8d%ae%e5%ba%93%e9%99%90%e5%88%b6%e7%99%bd%e5%90%8d%e5%8d%95%e5%af%bc%e8%87%b4%e8%87%aa%e8%ba%ab%e6%97%a0%e6%b3%95%e7%99%bb%e5%bd%95/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
