<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>IRAN OUG وبلاگ سایت گروه کاربران اوراکل ایران</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG</link><description>تازه ترین مطالب کارشناسان این صنعت را در بلاگ سایت (گروه کاربران اوراکل ایران) بررسی کنید</description><language>fa</language><generator>iranoug.org</generator><copyright>Copyright © 2026 Parto Pardazesh Fartak(IRANAPEX)-Iranoug.org</copyright><item><category>Security,Database</category><pubDate>Wed, 03 Jan 2018 00:00:00 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>جلوگیری از اجرای دستورات DDL ای کاربر - Security</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C%20%D8%A7%D8%B2%20%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C%20%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA%20DDL%20%D8%A7%DB%8C%20%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%20-%20Security</link><description>&lt;div&gt;
&lt;div&gt;
&lt;p&gt;&lt;span style=&quot;font-family:Tahoma&quot;&gt;گاهی اوقات نیاز است که بطور مثال کاربر نتواند اقدام به ALTER نمودن جداول نماید . در مثال زیر تمامی دسترسیهای کاربر به جز دستور TRUNCATE گرفته میشود.&lt;/span&gt;&lt;/p&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;CREATE OR REPLACE TRIGGER TEST.DDLTrigger&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp; BEFORE DDL ON schema&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;BEGIN&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp; if (ora_sysevent = &amp;#39;TRUNCATE&amp;#39;) then&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; null; -- I do not care about truncate&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp; else&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; raise_application_error(-20000, &amp;#39;YOU CAN NOT DO DDL!&amp;#39;);&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp; end if;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;END;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;strong&gt;روش دوم :&lt;/strong&gt;

&lt;p style=&quot;text-align:right&quot;&gt;در مثال بالا با توجه به اینکه تریگر فوق بایستی در اسکیمای کاربر باشد ، در صورتی که کاربر اقدام به حذف و یا غیر فعال نمودن تریگر نماید ، دسترسی زدن DDL برایش باز میشود . حال در مثال زیر روشی را پیاده سازی میکنیم که از نظر امنیتی بهتر باشد. در حالت کلی با توجه به اینکه هر کاربر OWNER جداول خودش است نمیتوان دسترسی ALTER را از او گرفت . پس یک کاربر دیگر میسازیم و مراحل زیر را طی میکنیم.&lt;/p&gt;

&lt;p style=&quot;text-align:right&quot;&gt;1- ایحاد کاربر جدید (میتوان از اسکریپت ساخت کاربر قبلی کمک گرفت)&lt;/p&gt;

&lt;p style=&quot;text-align:right&quot;&gt;2- ایجاد SYNONYM از روی جداول کاربر قبلی(میتوان از اسکریپت زیر کمک گرفت)&lt;/p&gt;

&lt;p style=&quot;text-align:right&quot;&gt;3- دادن دسترسی های DML ای بر روی جداول اسکیمای قبلی&lt;/p&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;begin&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;for x in ( select table_name from DBA_TABLES where owner= &amp;#39;TEST&amp;#39;)&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;loop&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;dbms_output.put_line(&amp;#39;CREATE OR REPLACE SYNONYM TEST2.&amp;#39; || x.table_name || &amp;#39; FOR TEST.&amp;#39;|| x.table_name ||&amp;#39;;&amp;#39;);&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;dbms_output.put_line(&amp;#39;GRANT DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE, ON COMMIT REFRESH, QUERY REWRITE, DEBUG, FLASHBACK ON ACHDD5.&amp;#39; || x.table_name || &amp;#39; TO TEST2;&amp;#39;);&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;end loop;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:left&quot;&gt;&lt;strong&gt;&lt;strong&gt;end;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description></item><item><category>Security,Database</category><pubDate>Wed, 03 Jan 2018 00:00:00 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>ایجاد ارتباط SSL در پایگاه داده اوراکل - Security</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF%20%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7%20SSL%20%D8%AF%D8%B1%20%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87%20%D8%AF%D8%A7%D8%AF%D9%87%20%D8%A7%D9%88%D8%B1%D8%A7%DA%A9%D9%84%20-%20Security</link><description>&lt;p&gt;با دنبال کردن مراحل زیر میتوان ارتباط بین برنامه و دیتابیس را ایجاد کرد.&lt;/p&gt;

&lt;p&gt;در این مستند فرض را بر این گرفته که &lt;span dir=&quot;LTR&quot;&gt;server&lt;/span&gt; با نام &lt;span dir=&quot;LTR&quot;&gt;ol7-121.localdomain&lt;/span&gt; بوده و &lt;span dir=&quot;LTR&quot;&gt;client&lt;/span&gt; یک سیستم ویندوزی با نام &lt;span dir=&quot;LTR&quot;&gt;&amp;quot;my-computer&amp;quot;&lt;/span&gt; میباشد و &lt;span dir=&quot;LTR&quot;&gt;oracle client&lt;/span&gt; بر روی آن نصب میباشد.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ایجاد &lt;/strong&gt;&lt;strong&gt;&lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt; بر روی سرور:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;ساخت &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt; بصورت &lt;span dir=&quot;LTR&quot;&gt;auto_login&lt;/span&gt; بر روی سرور&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;$ mkdir -p /u01/app/oracle/wallet&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
$ orapki wallet create -wallet &amp;quot;/u01/app/oracle/wallet&amp;quot; -pwd WalletPasswd123 -auto_login_local&lt;/pre&gt;

&lt;p style=&quot;margin-right:.25in&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;ساخت &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt; بصورت &lt;span dir=&quot;LTR&quot;&gt;self-signed&lt;/span&gt; &amp;nbsp;و &lt;span dir=&quot;LTR&quot;&gt;load&lt;/span&gt; به &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;$&amp;nbsp; orapki wallet add -wallet &amp;quot;/u01/app/oracle/wallet&amp;quot; -pwd WalletPasswd123 -dn &amp;quot;CN=`hostname`&amp;quot; -keysize 1024 -self_signed -validity 3650&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;بررسی محتویات &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
$ orapki wallet display -wallet &amp;quot;/u01/app/oracle/wallet&amp;quot; -pwd WalletPasswd123&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;خروجی گرفتن از &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt; برای ورود به &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt; در سمت &lt;span dir=&quot;LTR&quot;&gt;client&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
$ orapki wallet export -wallet &amp;quot;/u01/app/oracle/wallet&amp;quot; -pwd WalletPasswd123 -dn &amp;quot;CN=`hostname`&amp;quot; -cert /tmp/`hostname`-certificate.crt&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;بررسی محتویات &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
$ cat /tmp/`hostname`-certificate.crt&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
-----BEGIN CERTIFICATE-----&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
MIIBqzCCARQCAQAwDQYJKoZIhvcNAQEEBQAwHjEcMBoGA1UEAxMTb2w3LTEyMS5sb2NhbGRvbWFpbjAeFw0xNTA2MjYxNDQyMDJaFw0yNTA2MjMxNDQyMDJaMB4xHDAaBgNVBAMTE29sNy0xMjEubG9jYWxkb21haW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJIrU1fGWAwMxRobFsS0UZBD1jFUwAvnH9blsynhrQrZSkwyMBWGPRFq5tufRpaifoNVVHSrjJm/nti62A6RXECAKsug9rHL8T11FOgP3R/+Itw2jLzwpdk7MbHMxpNHz6Y2IPCmBsJ5+625dRxugVKhLsIitAW5cUpT28bkrMl9AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEABqQaP056WcPNgzSAOhJgTU/6D8uAFGCgUN57HoraXxgAN3HgmeGqhQfpb8tP+xeTF3ecqvWqJQHGdAJbuhRwpNR1rRovvlOxiv4gl0AplRzRuiygXfi6gst7KNmAdoxrTOcUQsqf/Ei9TaFl/N8E+88T2fK67JHgFa4QDs/XZWM=&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
-----END CERTIFICATE-----&lt;/pre&gt;

&lt;pre&gt;
$&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ایجاد &lt;/strong&gt;&lt;strong&gt;&lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt; بر روی کلاینت :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;در صورتیکه این مرحله بر روی ویندوز اجرا گردد نیاز به &lt;span dir=&quot;LTR&quot;&gt;oracle client&lt;/span&gt; خواهیم داشت.&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;ایجاد &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt; بصورت &lt;span dir=&quot;LTR&quot;&gt;auto_login&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
d:\&amp;gt;mkdir -p d:\app\oracle\wallet&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
d:\&amp;gt;orapki wallet create -wallet &amp;quot;d:\app\oracle\wallet&amp;quot; -pwd WalletPasswd123 -auto_login&lt;/pre&gt;

&lt;ol&gt;
	&lt;li&gt;ساخت &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt; بصورت &lt;span dir=&quot;LTR&quot;&gt;self-signed&lt;/span&gt; &amp;nbsp;و &lt;span dir=&quot;LTR&quot;&gt;load&lt;/span&gt; به &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
d:\&amp;gt;orapki wallet add -wallet &amp;quot;d:\app\oracle\wallet&amp;quot; -pwd WalletPasswd123 -dn &amp;quot;CN=%computername%&amp;quot; -keysize 1024 -self_signed -validity 3650&lt;/pre&gt;

&lt;ol&gt;
	&lt;li&gt;با دستور زیر &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt; را میتوانید بررسی کنید. توجه کنید که مقدار &lt;span dir=&quot;LTR&quot;&gt;cn&lt;/span&gt; که با نام کامپیوتر برابر است باید در قسمت &lt;span dir=&quot;LTR&quot;&gt;user&lt;/span&gt; و &lt;span dir=&quot;LTR&quot;&gt;trusted certificate&lt;/span&gt; وجود داشته باشد.&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
d:\&amp;gt;orapki wallet display -wallet &amp;quot;d:\app\oracle\wallet&amp;quot; -pwd WalletPasswd123&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Oracle PKI Tool : Version 11.2.0.3.0 - Production&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;

&amp;nbsp;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Requested Certificates:&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
User Certificates:&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CN=my-computer&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Trusted Certificates:&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CN=my-computer&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US&lt;/pre&gt;

&lt;ol&gt;
	&lt;li&gt;خروجی گرفتن از &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt; برای ورود به &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt; در سمت &lt;span dir=&quot;LTR&quot;&gt;Server&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
d:\&amp;gt;orapki wallet export -wallet &amp;quot;d:\app\oracle\wallet&amp;quot; -pwd WalletPasswd123 -dn &amp;quot;CN=%computername%&amp;quot; -cert d:\%computername%-certificate.crt&lt;/pre&gt;

&lt;ol&gt;
	&lt;li&gt;بررسی &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
d:\&amp;gt;more d:\%computername%-certificate.crt&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;تبادل &lt;/strong&gt;&lt;strong&gt;&lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt; ها&amp;nbsp; :&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;در ابتدا &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt; خروجی گرفته شده در سمت &lt;span dir=&quot;LTR&quot;&gt;server&lt;/span&gt; را در درایو &lt;span dir=&quot;LTR&quot;&gt;C&lt;/span&gt; بر روی &amp;nbsp;&lt;span dir=&quot;LTR&quot;&gt;client&lt;/span&gt;کپی کرده و برعکس ، &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt; خروجی گرفته شده در سمت &lt;span dir=&quot;LTR&quot;&gt;client&lt;/span&gt; را بر روی &lt;span dir=&quot;LTR&quot;&gt;/tmp &lt;/span&gt;&amp;nbsp;از &lt;span dir=&quot;LTR&quot;&gt;server&lt;/span&gt; کپی میکنیم.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;در ابتدا بر روی کلاینت دستور زیر را اجرا میکنیم:&lt;/p&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
d:\&amp;gt;orapki wallet add -wallet &amp;quot;d:\app\oracle\wallet&amp;quot; -pwd WalletPasswd123 -trusted_cert -cert d:\ol7-121.localdomain-certificate.crt&lt;/pre&gt;

&lt;p&gt;در اینجا بجای &lt;span dir=&quot;LTR&quot;&gt;d:\ol7-121.localdomain-certificate.crt&lt;/span&gt; میبایست مسیر و نام &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt; کپی شده از روی سرور جایگزین گردد.&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;در این قسمت &lt;span dir=&quot;LTR&quot;&gt;wallet&lt;/span&gt; بر روی &lt;span dir=&quot;LTR&quot;&gt;client&lt;/span&gt; را بررسی میکنیم:&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
d:\&amp;gt;orapki wallet display -wallet &amp;quot;d:\app\oracle\wallet&amp;quot; -pwd WalletPasswd123 &lt;/pre&gt;

&lt;p&gt;میبایست نام سرور در قسمت &lt;span dir=&quot;LTR&quot;&gt;Trusted Certificates&lt;/span&gt; اضافه شده باشد.&lt;/p&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Requested Certificates:&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
User Certificates:&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CN=my-computer&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Trusted Certificates:&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CN=my-computer&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CN=ol7-121.localdomain&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Subject:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US&lt;/pre&gt;

&lt;ol&gt;
	&lt;li&gt;بر روی سرور دستور زیر را اجرا میکنیم:&lt;/li&gt;
&lt;/ol&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;$&amp;nbsp; orapki wallet add -wallet &amp;quot;/u01/app/oracle/wallet&amp;quot; -pwd WalletPasswd123 -trusted_cert -cert /tmp/my-computer-certificate.crt&lt;/p&gt;

&lt;p&gt;در این قسمت به جای نام &lt;span dir=&quot;LTR&quot;&gt;my-computer-certificate.crt&lt;/span&gt; ، نام &lt;span dir=&quot;LTR&quot;&gt;certificate&lt;/span&gt; کپی شده از &lt;span dir=&quot;LTR&quot;&gt;client&lt;/span&gt; را قرار میدهیم.&lt;/p&gt;

&lt;p&gt;با استفاده از دستور زیر بررسی میکنیم که نام &lt;span dir=&quot;LTR&quot;&gt;client&lt;/span&gt; در لیست &lt;span dir=&quot;LTR&quot;&gt;Trusted Certificates&lt;/span&gt; اضافه شده باشد:&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;$&amp;nbsp; orapki wallet display -wallet &amp;quot;/u01/app/oracle/wallet&amp;quot; -pwd WalletPasswd123&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;تغییرات فایلهای شبکه ای سرور&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;&lt;strong&gt;تغییر فایلهای سرور:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;در ابتدا خطهای زیر در فایل &lt;span dir=&quot;LTR&quot;&gt;$ORACLE_HOME/network/admin/sqlnet.ora&lt;/span&gt; افاضه کنید و یا در صورت نیاز تغییر دهید:&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;WALLET_LOCATION =&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; (SOURCE =&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (METHOD = FILE)&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (METHOD_DATA =&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (DIRECTORY = /u01/app/oracle/wallet)&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; )&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS,BEQ)&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;SSL_CLIENT_AUTHENTICATION = TRUE&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;SSL_VERSION = 1.0&lt;/p&gt;

&lt;p&gt;سپس فایل &lt;span dir=&quot;LTR&quot;&gt;$ORACLE_HOME/network/admin/listener.ora&lt;/span&gt; را بصورت زیر تغییر دهید:&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;SSL_CLIENT_AUTHENTICATION = TRUE&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;WALLET_LOCATION =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp; (SOURCE =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (METHOD = FILE)&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (METHOD_DATA =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (DIRECTORY = /u01/app/oracle/wallet)&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp; )&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;LISTENER =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp; (DESCRIPTION_LIST =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (DESCRIPTION =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-121.localdomain)(PORT = 1521))&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCPS)(HOST = ol7-121.localdomain)(PORT = 2484))&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp; )&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;ADR_BASE_LISTENER = /u01/app/oracle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;توجه داشته باشید در صورتی که ارتباط فقط باید با &lt;span dir=&quot;LTR&quot;&gt;TCPS&lt;/span&gt; برقرار باشد ، خط &lt;span dir=&quot;LTR&quot;&gt;TCP&lt;/span&gt; را حذف کنید.&lt;/p&gt;

&lt;p&gt;سپس دستورات زیر را برای اعمال تغییرات انجام دهید:&lt;/p&gt;

&lt;p&gt;$ lsnrctl stop&lt;/p&gt;

&lt;p&gt;$ lsnrctl start&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;&lt;strong&gt;تغییر فایلهای &lt;/strong&gt;&lt;strong&gt;&lt;span dir=&quot;LTR&quot;&gt;client&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;فایل &lt;span dir=&quot;LTR&quot;&gt;$ORACLE_HOME/network/admin/sqlnet.ora&lt;/span&gt; را در کلاینت اضافه کنید (توجه داشته باشید شما برای این مرحله میبایست &lt;span dir=&quot;LTR&quot;&gt;oracle client&lt;/span&gt; را نصب داشته باشید).&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;WALLET_LOCATION =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; (SOURCE =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (METHOD = FILE)&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (METHOD_DATA =&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (DIRECTORY = D:\app\oracle\wallet)&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; )&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;SSL_VERSION=1.0&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS)&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;SSL_CLIENT_AUTHENTICATION = TRUE&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;همچنین خطوط زیر را به فایل &lt;span dir=&quot;LTR&quot;&gt;$ORACLE_HOME/network/admin/tnsnames.ora&lt;/span&gt; اضافه کنید:&lt;/p&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;pdb1_ssl=&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp; (DESCRIPTION=&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS=&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (PROTOCOL=TCPS)&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (HOST=ol7-121.localdomain)&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (PORT=2484)&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONNECT_DATA=&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVER=dedicated)&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVICE_NAME=pdb1)&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/strong&gt;&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;&amp;nbsp; )&lt;/strong&gt;&lt;/pre&gt;

&lt;p&gt;در این قسمت میبایست &lt;span dir=&quot;LTR&quot;&gt;pdb1_ssl&lt;/span&gt; را با نام دلخواه و &lt;span dir=&quot;LTR&quot;&gt;pdb1&lt;/span&gt; و &lt;span dir=&quot;LTR&quot;&gt;ol7-121.localdomain&lt;/span&gt; را با توجه به نام سرور و نام سرویس در سرور تغییر دهید.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;تست ارتباط:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;برای تست ارتباط میتوان به صورت زیر عمل نمود:&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
c:\&amp;gt;sqlplus test/test@pdb1_ssl&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
SQL*Plus: Release 11.2.0.3.0 Production on Fri Jun 26 16:23:28 2015&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Copyright (c) 1982, 2011, Oracle.&amp;nbsp; All rights reserved.&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Connected to:&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options&lt;/pre&gt;

&lt;pre style=&quot;text-align: left;&quot;&gt;
SQL&amp;gt;&lt;/pre&gt;

&lt;p&gt;به جای &lt;span dir=&quot;LTR&quot;&gt;test&lt;/span&gt; باید کاربر موجود در سرور و پسورد قرار داده شود.&lt;/p&gt;
</description></item><item><category>DB</category><pubDate>Mon, 18 Dec 2017 00:00:00 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>Security - VPD COLUMN MASKING</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:Security%20-%20VPD%20COLUMN%20MASKING</link><description>&lt;p&gt;&lt;strong&gt;&amp;nbsp;گرفتن دسترسی مشاهده دیتای چند ستون برای برخی از کاربران VPD COLUMN MASKING&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;صورت مسئله :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;بدلیل حساس بودن دیتای موجود در یک ستون خاص ، میخواهیم کاری کنیم که در صورتی که تنها کاربران دارای مجوز مشاهده آن ستون به دیتابیس لاگین نمودند توانایی دیدن محتوای ستون مورد نظر را داشته باشند .&lt;/p&gt;

&lt;p&gt;مراحل کار :&lt;/p&gt;

&lt;p&gt;1- ایجاد یک تابع جهت تعریف کاربران مجاز&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;create or replace function VPD( p_owner in varchar2, p_name in varchar2 ) return varchar2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; as&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if sys_context( &amp;#39;userenv&amp;#39;, &amp;#39;session_user&amp;#39; ) in( &amp;#39;user1&amp;#39;,&amp;#39;user2&amp;#39;) --and SYS_CONTEXT(&amp;#39;USERENV&amp;#39;,&amp;#39;HOST&amp;#39;)in(&amp;#39;DOMAIN\TESTPC&amp;#39;,&amp;#39;hamed&amp;#39;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and sys_context(&amp;#39;userenv&amp;#39;,&amp;#39;ip_address&amp;#39;) in (&amp;#39;192.168.1.10&amp;#39;,&amp;#39;192.168.1.20&amp;#39;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return NULL;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;#39;1=0&amp;#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; /&lt;/p&gt;

&lt;p&gt;2- ایجاد یک POLICY به شکل زیر&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBMS_RLS.ADD_POLICY(object_schema=&amp;gt;&amp;#39;scott&amp;#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object_name=&amp;gt;&amp;#39;test1&amp;#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; policy_name=&amp;gt;&amp;#39;english_name_col&amp;#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function_schema=&amp;gt;&amp;#39;scott&amp;#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; policy_function=&amp;gt;&amp;#39;VPD&amp;#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec_relevant_cols=&amp;gt;&amp;#39;ENGLISH_NAME,DESCRIPTION&amp;#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec_relevant_cols_opt=&amp;gt;dbms_rls.ALL_ROWS);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; END;&amp;nbsp;&amp;nbsp; /&lt;/p&gt;

&lt;p style=&quot;text-align:right&quot;&gt;با زدن SELECT زیر فقط کاربرانی میتوانند دیتای دو ستون فوق را مشاهده کنند که در تابع VPD اسامی آنها ذکر شده باشد&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;SELECT * FROM TEST1; &amp;nbsp;&lt;/p&gt;
</description></item><item><category>PL/SQL,Audit کردن</category><pubDate>Tue, 05 Dec 2017 00:00:00 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>Audit‌ کردن یک فیلد از جدول</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:Audit%E2%80%8C%20%DA%A9%D8%B1%D8%AF%D9%86%20%DB%8C%DA%A9%20%D9%81%DB%8C%D9%84%D8%AF%20%D8%A7%D8%B2%20%D8%AC%D8%AF%D9%88%D9%84</link><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Audit&amp;zwnj; کردن یک فیلد از جدول&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;حال اگر بخواهید که&amp;nbsp; log تغییرات بر روی یک&amp;nbsp;فیلد از جدول را داشته باشید بصورت زیر عمل می کنید که با&amp;nbsp;مثال آنرا بیان می کنم&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;table align=&quot;left&quot; border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;width:100%&quot;&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td style=&quot;background-color:#eeeeee; text-align:left&quot;&gt;
			&lt;p&gt;1)&lt;br /&gt;
			create table test_fga&lt;br /&gt;
			(&lt;br /&gt;
			&amp;nbsp; id number primary key,&lt;br /&gt;
			&amp;nbsp; value number,&lt;br /&gt;
			&amp;nbsp; name &amp;nbsp;varchar2(100)&lt;br /&gt;
			);&lt;/p&gt;

			&lt;p&gt;insert into test_fga values ( 1, 1000, &amp;#39;saeed&amp;#39;);&lt;br /&gt;
			insert into test_fga values ( 2, 2000 , &amp;#39;armin&amp;#39;);&lt;br /&gt;
			commit;&lt;/p&gt;

			&lt;p&gt;2)&lt;br /&gt;
			BEGIN&lt;br /&gt;
			&amp;nbsp; DBMS_FGA.add_policy(&lt;br /&gt;
			&amp;nbsp; &amp;nbsp; object_schema &amp;nbsp; =&amp;gt; &amp;#39;TEST&amp;#39;,&lt;br /&gt;
			&amp;nbsp; &amp;nbsp; object_name &amp;nbsp; &amp;nbsp; =&amp;gt; &amp;#39;TEST_FGA&amp;#39;,&lt;br /&gt;
			&amp;nbsp; &amp;nbsp; policy_name &amp;nbsp; &amp;nbsp; =&amp;gt; &amp;#39;FGA_TEST_CHECK_VALUE&amp;#39;,&lt;br /&gt;
			&amp;nbsp; &amp;nbsp; audit_column &amp;nbsp; &amp;nbsp;=&amp;gt; &amp;#39;VALUE&amp;#39;,&lt;br /&gt;
			&amp;nbsp; &amp;nbsp; statement_types =&amp;gt; &amp;#39;UPDATE&amp;#39;);&lt;br /&gt;
			END;&lt;br /&gt;
			/&lt;/p&gt;

			&lt;p&gt;3)&lt;br /&gt;
			update test_fga set name = &amp;#39;ali&amp;#39;&lt;br /&gt;
			where id= 1&lt;/p&gt;

			&lt;p&gt;4)&lt;br /&gt;
			select session_id,timestamp,db_user,sql_text &amp;nbsp; &amp;nbsp; from dba_fga_audit_trail;&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;هيچ ركوردی بازيابي نمي شود&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;table align=&quot;left&quot; border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;width:100%&quot;&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td style=&quot;background-color:#eeeeee; text-align:left&quot;&gt;
			&lt;p&gt;5)&lt;br /&gt;
			update test_fga set value = 1500&lt;br /&gt;
			where id= 1&lt;/p&gt;

			&lt;p&gt;6)&lt;br /&gt;
			select session_id,timestamp,db_user,sql_text &amp;nbsp; &amp;nbsp; from dba_fga_audit_trail;&lt;/p&gt;

			&lt;p&gt;&amp;nbsp;Result:&lt;br /&gt;
			update test_fga set value = 1500&lt;br /&gt;
			where id= 1&lt;/p&gt;

			&lt;p&gt;7)&lt;br /&gt;
			update test_fga set value = 1500, name = &amp;#39;ali&amp;#39;&lt;br /&gt;
			where id= 1&lt;/p&gt;

			&lt;p&gt;8)&lt;br /&gt;
			select session_id,timestamp,db_user,sql_text &amp;nbsp; &amp;nbsp; from dba_fga_audit_trail;&lt;/p&gt;

			&lt;p&gt;Result:&lt;br /&gt;
			update test_fga set value = 1500, name = &amp;#39;ali&amp;#39;&lt;br /&gt;
			where id= 1&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;امیدوار هستم مورد استفاده دوستان قرار گیرد&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description></item><item><category>apex,ترجمه پيغام</category><pubDate>Tue, 21 Nov 2017 00:00:00 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>اصلاح نمایش ترجمه پيغام های APEX</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:%D8%A7%D8%B5%D9%84%D8%A7%D8%AD%20%D9%86%D9%85%D8%A7%DB%8C%D8%B4%20%D8%AA%D8%B1%D8%AC%D9%85%D9%87%20%D9%BE%D9%8A%D8%BA%D8%A7%D9%85%20%D9%87%D8%A7%DB%8C%20APEX</link><description>&lt;p&gt;👇👇👇&lt;strong&gt;نکته:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
در صورت مشاهده پيغام بدين صورت:&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
&amp;lt;div dir=&amp;quot;rtl&amp;quot;&amp;gt;1 خطا رخ داده است&amp;lt;/div&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
&amp;nbsp;یا هر پیغام دیگر بايد از طريق زير آنرا اصلاح فرماييد:&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;Shared Components &amp;gt; Translate &amp;gt; Text Messages&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
&amp;nbsp;اين دو Name را [FLOW.VALIDATION_ERROR, FLOW.SINGLE_VALIDATION_ERROR] جستجو كنيد و یا در پیغام های دیگر هم از همین طریق استفاده نمایید &amp;nbsp;و سپس تگ &lt;strong&gt;[&amp;lt;div dir=&amp;quot;rtl&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;]&lt;/strong&gt; را از قسمت Text حذف كنيد.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;📌در نسخه قبل از APEX 5.1 قالب RTL ساپورت نشده بود. بدين منظور براي اينكه نمايش پيغام ها براي توسعه دهنده گاني كه از قالب LTR استفاده مي كردند و در ضمن در فايل هاي CSS خود تغييري مبني بر RTL كردن صفحات انجام نداده بود،&amp;nbsp;اين تگ &amp;lt;div dir=&amp;quot;rtl&amp;quot;&amp;gt; به بعضي از پيغام ها اضافه شده بود.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;📌حال دوستاني كه از نسخه &lt;strong&gt;APEX 5.1&lt;/strong&gt; و بالاتر را استفاده مي نمايند براي نمايش صحيح آنرا اصلاح کنید.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&lt;/p&gt;
</description></item><item><category>ترجمه پيغام,Oracle,apex</category><pubDate>Tue, 21 Nov 2017 00:00:00 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>ترجمه پيغام های فارسی نسخه APEX 5.1</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:%D8%AA%D8%B1%D8%AC%D9%85%D9%87%20%D9%BE%D9%8A%D8%BA%D8%A7%D9%85%20%D9%87%D8%A7%DB%8C%20%D9%81%D8%A7%D8%B1%D8%B3%DB%8C%20%D9%86%D8%B3%D8%AE%D9%87%20APEX%205.1</link><description>&lt;p&gt;📌در حال حاضر ترجمه نسخه APEX 5.1 &amp;nbsp;بر روي سايت &lt;a href=&quot;http://translate-apex.com&quot;&gt;http://translate-apex.com&lt;/a&gt; قرار نگرفته است. براي دوستان اسكريپتي فراهم شده كه مي توانند از آن استفاده نمايند.&lt;/p&gt;

&lt;p&gt;📌اين اسكريپت شامل تغييرات آخرين نسخه مي باشد.&lt;/p&gt;

&lt;p&gt;📌دوستاني كه تا الان پيغام هاي خود را فارسي نكردند در ابتدا از طريق سايت&amp;nbsp;&lt;a href=&quot;http://translate-apex.com/apex/f?p=800:11&quot;&gt;http://translate-apex.com/apex/f?p=800:11&lt;/a&gt;&amp;nbsp;اسكريپت تهيه و اجرا و بعد از آن اسكريپت زير را اجرا نماييد.&lt;/p&gt;

&lt;p&gt;📢&lt;strong&gt;مراحل اجراي اسكريپت ذيل به شرح زير مي باشد:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
1- اسكريپت را دانلود كرده و از طريق يك اديتور آنرا باز و ويرايش نماييد&lt;/p&gt;

&lt;p&gt;2-در داخل فايل متن MY_WORKSPACE_NAME را جستجو &amp;nbsp;و سپس نام workspace خود را جايگزين كنيد&lt;/p&gt;

&lt;p&gt;3-در داخل فايل متن MY_APP_ID را جستجو &amp;nbsp;و سپس شماره/آي دي اپليكيشن خود را جايگزين نماييد&lt;/p&gt;

&lt;p&gt;4- فايل را ذخيره كنيد و سپس وارد محيط APEX شويد.&lt;/p&gt;

&lt;p&gt;5- وارد قسمت SQL Workshop&amp;gt; SQL Scripts شويد و سپس اسكريپت مربوطه را آپلود و بعد از آن اجرا نماييد.&lt;/p&gt;

&lt;p&gt;6- تعداد 498 پيغام به پيغام هاي قبلي شما بايد اضافه شده باشد كه در مجموع تعداد 961 پيغام مي باشد&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;می توانید اسکرپیت مربوط به ترجمه APEX 5.1 فارسی&amp;nbsp;را از کتابخانه سایت&amp;nbsp;&lt;a href=&quot;https://iranoug.org/ir/f?p=SITE:LIBRARY&quot;&gt;دانلود&lt;/a&gt;&amp;nbsp;کنید.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;👈👈اميدوار هستم كه مورد استفاده دوستان قرار گيرد و منتظر نظرات گرانبهاي شما هستيم👉👉&lt;/p&gt;


&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description></item><item><category>xml,Parse کردن,کارکترهای فارسی,PL/SQL,Database</category><pubDate>Sun, 12 Nov 2017 00:00:00 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>رفع مشکل Parse کردن کارکتر فارسی در XML</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:%D8%B1%D9%81%D8%B9%20%D9%85%D8%B4%DA%A9%D9%84%20Parse%20%DA%A9%D8%B1%D8%AF%D9%86%20%DA%A9%D8%A7%D8%B1%DA%A9%D8%AA%D8%B1%20%D9%81%D8%A7%D8%B1%D8%B3%DB%8C%20%D8%AF%D8%B1%20XML</link><description>&lt;p&gt;به احتمال زیاد هنگام خواندن فایل &lt;strong&gt;XML&lt;/strong&gt; و &lt;strong&gt;Parse&lt;/strong&gt; کردن در &lt;strong&gt;دیتابیس اوراکل&lt;/strong&gt;، در صورتیکه شامل&lt;strong&gt; کارکترهای فارسی&lt;/strong&gt; باشد برخورد کرده و با این خطا مواجه شده اید&lt;/p&gt;

&lt;p style=&quot;text-align:center&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;135&quot; src=&quot;http://up.upinja.com/dvpbx.jpg&quot; width=&quot;598&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;بدلیل اینکه &lt;strong&gt;NLS_CHARACTERSET &lt;/strong&gt;دیتابیس شما &lt;span style=&quot;color:#ff0000&quot;&gt;&lt;strong&gt;AR8MSWIN1256 &lt;/strong&gt;&lt;/span&gt;می باشد به این خطا برخورد می کنید حال به روش زیر می توانید این خطا را برطرف سازید.&lt;/p&gt;

&lt;p&gt;در ابتدا باید رشته XML را در یک BLOB ذخیره&amp;nbsp;و سپس اقدام به خواندن مقدار XML نمایید&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;مثال:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;table align=&quot;left&quot; border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;width:600px&quot;&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td style=&quot;text-align: left; background-color: rgb(238, 238, 238);&quot;&gt;
			&lt;div&gt;
			&lt;p style=&quot;text-align:left&quot;&gt;&amp;mdash;if NLS_CHARACTERSET = AR8MSWIN1256 in your database so you must use below code&lt;/p&gt;

			&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_blob := FNC_CLOBTOBLOB (P_XML);&lt;/p&gt;

			&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Insert Into TAXML_TEMP (F_XML) Values (XMLTYPE(l_blob,Nls_Charset_Id(&amp;#39;UTF-8&amp;#39;)));&amp;nbsp;&amp;nbsp;&lt;/p&gt;

			&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&lt;/p&gt;

			&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;mdash;if NLS_CHARACTERSET = UTF-8 or AL32UTF8 so you should use below code&lt;/p&gt;

			&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp; Insert Into TAXML_TEMP (F_XML) Values (XMLTYPE(P_XML));&lt;/p&gt;
			&lt;/div&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;

&lt;div&gt;&amp;nbsp;&lt;/div&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;می توانید اسکرپیت جدول و پکیج را از کتابخانه سایت &lt;a href=&quot;https://iranoug.org/ir/f?p=SITE:LIBRARY&quot;&gt;دانلود&lt;/a&gt; کنید.&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align:left&quot;&gt;&amp;nbsp;&lt;/p&gt;
</description></item><item><category>DDL,SQL,Syntax</category><pubDate>Wed, 08 Nov 2017 13:24:41 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>استفاده از [/] و [;] در اجراي دستورات DDL در اوراكل</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%20%D8%A7%D8%B2%20%5B%2F%5D%20%D9%88%20%5B%3B%5D%20%D8%AF%D8%B1%20%D8%A7%D8%AC%D8%B1%D8%A7%D9%8A%20%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA%20DDL%20%D8%AF%D8%B1%20%D8%A7%D9%88%D8%B1%D8%A7%D9%83%D9%84</link><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;span dir=&quot;RTL&quot;&gt;شايد بارها براي شما اتفاق افتاده باشد كه در انتهاي دستورات&lt;/span&gt; DDL &lt;span dir=&quot;RTL&quot;&gt;خود از دو علامت &lt;/span&gt;&lt;strong&gt;Slash &lt;span dir=&quot;RTL&quot;&gt;و&lt;/span&gt; Semicolons&lt;/strong&gt; &lt;span dir=&quot;RTL&quot;&gt;استفاده كرده باشيد در محيط هاي ابزارهايي كه داراي محيط هاي گرافيكي هستند همانند&lt;/span&gt; : Toad-SQL Developer &lt;span dir=&quot;RTL&quot;&gt;و ... و همچنين در محيط &lt;/span&gt;&lt;strong&gt;Command Base SQL*PLUS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;span dir=&quot;RTL&quot;&gt;حال اگر از هردوي اين دو در انتهاي اسكريپت ها استفاده كنيم چه اتفاقي مي افتد. براي درك بهتر به مثال زير توجه كنيد&lt;/span&gt;:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;drop table foo;&lt;br /&gt;
/&lt;br /&gt;
create table foo&lt;br /&gt;
( id number&lt;br /&gt;
,code varchar2(10)&lt;br /&gt;
,description varchar2(100)&lt;br /&gt;
);&lt;br /&gt;
/&lt;br /&gt;
create or replace trigger foo_trig_bi&lt;br /&gt;
before insert on foo&lt;br /&gt;
for each row&lt;br /&gt;
begin&lt;br /&gt;
:new.id := nvl(:new.id,foo_seq.nextval) ;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;📌&lt;span dir=&quot;RTL&quot;&gt;توسعه دهنده اسكريپت بالا در محيط&lt;/span&gt; GUI &lt;span dir=&quot;RTL&quot;&gt;مثل&lt;/span&gt; SQL Developer &lt;span dir=&quot;RTL&quot;&gt;اجرا ميكند و بصورت كامل و بدون خطا اجرا مي شود و خروجي همانند زير را دريافت مي كند&lt;/span&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
Table FOO dropped.&lt;br /&gt;
Table FOO Created.&lt;br /&gt;
Trigger FOO_TRIG_BI Compiled&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;📌&lt;span dir=&quot;RTL&quot;&gt;سپس توسعه دهنده اسكريپت بالا را براي&lt;/span&gt; DBA &lt;span dir=&quot;RTL&quot;&gt;مي فرستد كه آن را در محيط&lt;/span&gt; Production &lt;span dir=&quot;RTL&quot;&gt;و در محيط&lt;/span&gt; SQL*PLUS &lt;span dir=&quot;RTL&quot;&gt;اجرا كند ولي اجراي آن بصورت كامل و صحيح اجرا نمي شود و با خطا مواجه مي شود. زيرا مي خواهد حذف و ايجاد جدول رو دوبار انجام دهد&lt;/span&gt;&lt;br /&gt;
📌&lt;span dir=&quot;RTL&quot;&gt;راه حل بدين صورت مي باشد كه بايد از يكي از دو علامت&lt;/span&gt; Slash &lt;span dir=&quot;RTL&quot;&gt;يا&lt;/span&gt; Semicolons &lt;span dir=&quot;RTL&quot;&gt;را بعد از&lt;/span&gt; Drop &lt;span dir=&quot;RTL&quot;&gt;و&lt;/span&gt; Create &lt;span dir=&quot;RTL&quot;&gt;جدول استفاده نماييم همانند شكل زير&lt;/span&gt;👇👇👇&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://up.upinja.com/bruxe.jpg&quot; style=&quot;float:right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; height=&quot;311&quot; src=&quot;http://up.upinja.com/ifp4r.jpg&quot; style=&quot;float:right&quot; width=&quot;624&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description></item><item><category>web services,Java,Database</category><pubDate>Tue, 07 Nov 2017 19:52:18 GMT</pubDate><dc:creator>IRAN OUG</dc:creator><title>Call the web services via Java and parse in oracle database</title><link>https://iranoug.org/ords/f?p=SITE:IROUGBLOG:::::IRBLOGSEARCH:Call%20the%20web%20services%20via%20Java%20and%20parse%20in%20oracle%20database</link><description>&lt;p&gt;📌دوستان من، &amp;nbsp;تجربه &amp;nbsp;استفاده &amp;nbsp;از وب لاجیک رو داشتند و می گفتند هر از گاهی از کار می افتد و باید stop and start. &amp;nbsp;کنند&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
📌و اینکه اگر بخواهید &amp;nbsp;با نسخه های پایینتر jDeveloper &amp;nbsp; فراخوانی یک وب سرویس &amp;nbsp;مثلا با.NET که نوشته شده (بیشتر دوستان .NET بصورت &amp;zwj;پیش فرض و بدون تغییر هیچکدام از &amp;zwj;پارامترها از قبیل URI &amp;nbsp;و .. وب سرویس ایجاد می کنند و همینطور از Dataset که اگر XMLآنرا مشاهده کنید یکسری از دستورات XML مربوط به DataSet نیز اضافه می شود (لطفا دوستان .NET کار من را اصلاح کنند در صورتیکه اشتباه دارم)&amp;nbsp;براحتی نمی باشد و با چند خطا برخورد می کنید &amp;nbsp;و خودم هم امتحان &amp;nbsp;کردم بدین صورت بود&lt;/p&gt;

&lt;p&gt;📌حال تصمیم گرفتم که از یک روش جدید استفاده &amp;nbsp;کنم و الان به مدت سه سال هست که Downtime &amp;nbsp;هم نداره مگر سرور کلا از سرویس خارج شود&lt;/p&gt;

&lt;p&gt;👈ایجاد یک jar. &amp;nbsp;فایل که حاوی کلاس های &amp;nbsp;فراخوانی &amp;nbsp;وب سرویس مورد نظر &amp;nbsp;باشد &amp;nbsp;و Runnable&lt;/p&gt;

&lt;p&gt;👈 به فرض اینکه سروی که دسترسی به اینترنت &amp;nbsp;دارد لینوکس می باشد یک فایل.sh &amp;nbsp;ایجاد کنید &amp;nbsp;و فایل jar. &amp;nbsp;فایل &amp;nbsp;رو درون آن فراخوانی کنید&lt;/p&gt;

&lt;p&gt;👈 از طریق دستور crontab می توانید زمان اجرایی فایل.sh. رو هر چند بار و در زمانهایی مختلف تنظیم &amp;nbsp;کنید&lt;/p&gt;

&lt;p&gt;👈برای اینکه overhead بر روی سرور کاهش یابد و از منابع کمتری در Application server. استفاده شود &amp;nbsp;عملیات parse کردن رو درون دیتابیس انجام میدهم&lt;/p&gt;

&lt;p&gt;📌&lt;strong&gt;معایب:&lt;/strong&gt;&lt;br /&gt;
👈 کانکشن درون classها ست می شود و در هنگام &amp;nbsp;تغییر پسورد &amp;nbsp;یوزر دیتابیس &amp;nbsp;باید دوباره کامپایل و بر روی سرور قرار دهیم.&lt;br /&gt;
البته می توان بوسیله پارامتر ورودی &amp;nbsp;درون فایل.sh &amp;nbsp;به jar فایل بفرستیم&lt;br /&gt;
ولی به هر حال از امنیت بسیار بالایی برخوردار نیست &amp;nbsp;ولی می توان گفت که امنیت &amp;nbsp;باید در تمام لایه ها و سرورها اعمال گردد که ضعف &amp;nbsp;بعضی از&amp;nbsp;&lt;br /&gt;
قسمت ها رو پوشش دهد&lt;/p&gt;

&lt;p&gt;👈 برای اولین بار برای ایجاد کمی زمان بیشتری صرف می کنید و کمی پیچیده&amp;nbsp;&lt;/p&gt;

&lt;p&gt;📌&lt;strong&gt;مزایا :&lt;/strong&gt;&lt;br /&gt;
👈 دیگر Downtime ندارد&lt;/p&gt;

&lt;p&gt;👈نیازی به Application server &amp;nbsp;ندارید&lt;/p&gt;

&lt;p&gt;👈 برای اعمال تغییرات &amp;nbsp;بروی برنامه خود آزادتر هستید و می توانید هر قسمتی را که مایل بودید تغییر دهید و کنترل آنرا بسته به نیاز خود تغییر دهید&lt;/p&gt;

&lt;p&gt;👈 می توانید هر دو نوع parse &amp;nbsp;کردن درون سرور و دیتابیس رو داشته باشید&lt;/p&gt;

&lt;p&gt;📌&lt;strong&gt;نکته :&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;
👈بهتر است که نسخه جاوای &amp;nbsp;سرور شما و نسخه &amp;nbsp;جاوایی &amp;nbsp;که کامپایل می کنید یک نسخه باشد.&lt;/p&gt;

&lt;p&gt;👈می توانید به ازای هر وب سرویس یک فایل jar تولید کنید&lt;/p&gt;

&lt;p&gt;👈می توانید یک فایل لاگ هم در برنامه &amp;nbsp;به ازای &amp;nbsp;هر قسمت ایجاد کنید که بعدا بتوانید &amp;nbsp;آنرا به ازای هربار اجرا مشاهده و بررسی نمایید&lt;/p&gt;

&lt;p&gt;👈برای ایجاد از IDE Eclipse &amp;nbsp;استفاده &amp;nbsp;کردم&lt;/p&gt;

&lt;p&gt;📌امیدوار هستم که مطلب مفید واقع شده باشد&lt;/p&gt;
</description></item></channel></rss>