<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6593043901922341518</id><updated>2012-02-16T18:31:15.051-05:00</updated><title type='text'>DBConnect Solutions, Inc.</title><subtitle type='html'>Tips and scripts for anyone managing an Oracle database used by JD Edwards EnterpriseOne</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dbconnectsolutions.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dbconnectsolutions.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sleepydba</name><uri>http://www.blogger.com/profile/11089521522737443033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://4.bp.blogspot.com/_HE3LegTQe58/TU405ogRDvI/AAAAAAAADzg/BIKnAMqVOHc/s220/Logo.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6593043901922341518.post-1893387335799735374</id><published>2011-02-25T16:25:00.003-05:00</published><updated>2011-02-28T10:21:14.063-05:00</updated><title type='text'>To Truncate or Delete, Is it Really a Question?</title><content type='html'>One of the primary objectives of an oracle DBA is to protect the data that is stored in the database.  The potential for data loss can come from many different threats and an often overlooked one is from a user accidentally deleting data.  By implementing proper security mechanisms, the DBA can define the proper access to prevent unauthorized users from having the ability to delete data from tables that shouldn't be accessing.  However, there will occasions when a developer will need to delete data for testing purposes or when working with custom tables.  Defining this access is fairly straight-forward as well, but there can also be situations when providing additional access can actually be beneficial.  If a developer needs to delete all the data in a table, they have two options: they can issue a regular DELETE statement or they can use an Oracle command called the TRUNCATE command.  Now most DBAs will get very nervous at the thought of allowing a user to truncate tables because there is more risk involved when this privilege is in the wrong hands.  However, consider this scenario we recently encountered:&lt;br /&gt;&lt;br /&gt;User A needs to delete data from a custom table and issues "DELETE FROM T;"&lt;br /&gt;The table T in question is 50 GB in size, so behind the scenes what does Oracle have to do for this "simple" statement?  The database must keep track of all the rollback information for the records being deleted in the UNDO area in case the user decides to rollback his changes or the statement fails.  The modifications to the table generates change records in the database redo logs that Oracle uses to keep track of the sequence of changes made to the database and also copies these files to archive redo logs as they fill up.  All of the indexes on table T must be maintained to keep track of the record pointers, which also generates redo log activity.&lt;br /&gt;&lt;br /&gt;After running for 2 hours, the delete statement finally failed when it consumed all of the available UNDO space because of the amount of changes being made.  The change generated so much activity that it also almost completely used all the available disk space on the server where the archive logs are stored.  Once the transaction failed, then Oracle had to reverse the changes to put the data back the way it was.  During this rollback process that took an additional 2 hours, Oracle generated additional redo activity from reverting the changes.  All of this to delete data that isn't needed anymore and meanwhile the system resources are being consumed, potentially impacting activity that end users are trying to complete.&lt;br /&gt;&lt;br /&gt;Now compare this to the effect of issuing a TRUNCATE on the same table.  Truncating table T completed in a matter of seconds, consumes no UNDO space, and generates no redo activity.  The truncate command also reclaims the space used by the table by resetting the high water mark (a marker Oracle uses to track the used blocks in a table).  If the delete command had completed successfully, table T would still be 50 GB in size unless additional maintenance was performed to reclaim the unused free space.  Truncate doesn't come without risks, the biggest being that it cannot be undone.  When issuing a delete statement, the user has a chance to verify they deleted the intended data before issuing a commit (save) or rollback (undo) statement.  With a truncate, there is no opportunity for Oracle to ask the user "Are you sure?" so this must be used with caution.&lt;br /&gt;&lt;br /&gt;Careful consideration should be used when allowing access to the TRUNCATE command.  The elevated privileges required by the TRUNCATE command will allow the user to truncate any table in the database; however the potential for reduced impact on the system can often outweigh the security risk in non-production databases.  Hopefully this example shows how using the features that are available in Oracle can help save your system from unnecessary problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6593043901922341518-1893387335799735374?l=dbconnectsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbconnectsolutions.blogspot.com/feeds/1893387335799735374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbconnectsolutions.blogspot.com/2011/02/to-truncate-or-delete-is-it-really.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default/1893387335799735374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default/1893387335799735374'/><link rel='alternate' type='text/html' href='http://dbconnectsolutions.blogspot.com/2011/02/to-truncate-or-delete-is-it-really.html' title='To Truncate or Delete, Is it Really a Question?'/><author><name>Doug Floyd</name><uri>http://www.blogger.com/profile/14832806876926351391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6593043901922341518.post-7912042661197545966</id><published>2011-02-21T15:15:00.010-05:00</published><updated>2011-02-21T18:35:47.798-05:00</updated><title type='text'>Finding PUBLIC Privileges</title><content type='html'>&lt;p&gt;One of the most common security issues that a DBA will encounter in a JDE database is PUBLIC access to database objects. By default, JDE will grant full access to the Oracle internal PUBLIC role whenever a table is created. What this means is that any Oracle account that is created in the database will inherent full read/write access to all JDE data. This security hole becomes very apparent as soon as there is a requirement for an additional database account (for example an application support analyst or a reporting tool). A DBA would typically setup a role with read-only access to the tables which the user needs to query, however it is easy to overlook the default PUBLIC access.&lt;/p&gt;&lt;p&gt;Here is a query that can be used to list the JDE objects which have PUBLIC access granted on them (this assumes E1 version 9.0, for version 8.11 substitute 900 with 811, etc.):&lt;/p&gt;&lt;pre style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;set pagesize 9999&lt;br /&gt;set linesize 120&lt;br /&gt;set colsep ' '&lt;br /&gt;&lt;br /&gt;column owner format a30 heading 'Owner'&lt;br /&gt;column table_name format a30 heading 'Object'&lt;br /&gt;column privilege format a40 heading 'Privilege'&lt;br /&gt;&lt;br /&gt;select owner, table_name, privilege&lt;br /&gt;from dba_tab_privs a&lt;br /&gt;where grantee = 'PUBLIC'&lt;br /&gt;and (owner like '%900' or &lt;br /&gt;     owner like '%SAVE' or &lt;br /&gt;     owner like '%CTL' or &lt;br /&gt;     owner like '%DTA')&lt;br /&gt;and not exists (select null from dba_recyclebin b&lt;br /&gt;                where b.owner = a.owner&lt;br /&gt;                and b.object_name = a.table_name)&lt;br /&gt;order by owner, table_name privilege;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Identifying the objects with PUBLIC access is the first step in addressing the issue, but how can this security gap be closed to protect your data and satisfy security audit requirements? Simply revoking the PUBLIC grants only provides a temporary fix and will cause permissions errors in the JDE application. A proper solution is to implement a robust, maintainable security framework along with automated tools to maintain the proper levels of security in your database. Contact DBConnect Solutions, Inc. for more information on how we can help secure your JDE database.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6593043901922341518-7912042661197545966?l=dbconnectsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbconnectsolutions.blogspot.com/feeds/7912042661197545966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbconnectsolutions.blogspot.com/2011/02/finding-public-privileges.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default/7912042661197545966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default/7912042661197545966'/><link rel='alternate' type='text/html' href='http://dbconnectsolutions.blogspot.com/2011/02/finding-public-privileges.html' title='Finding PUBLIC Privileges'/><author><name>Doug Floyd</name><uri>http://www.blogger.com/profile/14832806876926351391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6593043901922341518.post-6211851548243747885</id><published>2011-02-14T01:13:00.003-05:00</published><updated>2011-02-14T01:18:24.671-05:00</updated><title type='text'>The Ubiquitous To-Do List</title><content type='html'>Most Oracle DBAs are, by nature, ornery little task masters.&amp;nbsp; We're called &lt;i&gt;detail-oriented&lt;/i&gt; when someone wants to be generous.&amp;nbsp; We're called anal-retentive micro-managers the other 6 days of the week.&lt;br /&gt;&lt;br /&gt;It's all true, and it's also what makes a good DBA an excellent DBA.&lt;br /&gt;&lt;br /&gt;I figured out something very important soon after I became an IT Manager back in the mid 90s.&amp;nbsp; None of the technical people who worked for me could tell me, at ANY point in time, exactly what they were working on.&amp;nbsp; Oh sure, they could tell me about some pending big project or talk about a nagging issue that never seemed to go away (often as a direct result of that same individual dropping the ball day after day), but they couldn't tell me what they needed to do in the next day, let alone the next hour.&lt;br /&gt;&lt;br /&gt;I was pretty incredulous.&amp;nbsp; &lt;i&gt;How could technical people not know what they needed to get done?&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;People who knew me at the time joked about my to-do list.&amp;nbsp; I took it to meetings and added tasks and "to-dos" during the meeting.&amp;nbsp; I'd then work on my tasks and cross them off as I completed them.&amp;nbsp; If I told someone I would do something, I did it.&amp;nbsp; If I made a commitment, I followed through.&amp;nbsp; The buzzword in my company at the time was &lt;i&gt;accountability, &lt;/i&gt;and every member of the IT leadership team was evaluated accordingly.&amp;nbsp; It never came as a surprise when I blew the lid off the accountability chart. &lt;br /&gt;&lt;br /&gt;It also came as no surprise to my direct reports when I made it a requirement that everyone create a to-do list and begin working from a list of prioritized tasks.&amp;nbsp; It became part of everyone's quarterly review process.&amp;nbsp; It became part of every one-on-one meeting and part of every status meeting.&lt;br /&gt;&lt;br /&gt;It drove a lot of people crazy.&amp;nbsp; Some people couldn't deal with structure.&amp;nbsp; A few couldn't deal with accountability (i.e. having to work a full day).&amp;nbsp; A couple people were, unfortunately, terminated.&amp;nbsp; The to-list, and their inability and/or refusal to have their work ethic exposed, was more than some could bear.&lt;br /&gt;&lt;br /&gt;Today, IT is replete with people who believe in the art of black magic.&amp;nbsp; They don't believe they need structure, processes, or documentation.&amp;nbsp; They scoff at the idea of having rules or boundaries of any sort.&amp;nbsp; They're the day-to-day &lt;i&gt;IT heroes&lt;/i&gt; who make computers work, never mind the fact that they're also the ones who break them in the first place.&amp;nbsp; They seem to be in a constant state of panic, seemingly unable to extricate themselves from their situation.&lt;br /&gt;&lt;br /&gt;Some people, especially the &lt;i&gt;IT hero&lt;/i&gt;, would argue that my ubiquitous to-do list concept is an unnecessary burden when most IT organizations have project plans, help desk ticketing systems, and the like to identify and track an organization's priorities and schedules.&amp;nbsp; They'd claim that they are already overworked.&amp;nbsp; B.S.&amp;nbsp; Nothing could be further from the truth.&lt;br /&gt;&lt;br /&gt;An accountable IT professional is like a lion on the open Savannah.&amp;nbsp; He or she works smart, conserving energy and identifying targets with the greatest return on their investment in time and energy.&amp;nbsp; He or she is uniquely positioned to identify, track, and leverage technology for the betterment of the company.&amp;nbsp; This type of person has light bulbs go off in the head when they see an opportunity to improve processes, implement new technologies, standardize methods, reduce costs, automate manual processes, or increase efficiencies across cross-functional boundaries.&lt;br /&gt;&lt;br /&gt;This is the person who has a hallway conversation, an IM chat, or an email discussion, and identifies possible opportunities to improve the way business is done.&amp;nbsp; These ideas go on a to-do list, a living, breathing, ever-changing list of "stuff" that needs to be done.&amp;nbsp; These are the intangible things that never appear on a project plan or a Help Desk ticket.&amp;nbsp; These are the things that separate an average worker from a superior employee.&amp;nbsp; These are the things that lead to great things in the workplace.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Not working smart is one of IT's dirty little secrets.&amp;nbsp; Corporations are demanding ever-increasing productivity from their employees.&amp;nbsp; One way or another they'll get it, with or without the &lt;i&gt;IT hero.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Don't be a hero.&amp;nbsp; If you don't have a to-do list, give it a try for a month and let me know how it goes for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6593043901922341518-6211851548243747885?l=dbconnectsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbconnectsolutions.blogspot.com/feeds/6211851548243747885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbconnectsolutions.blogspot.com/2011/02/ubiquitous-to-do-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default/6211851548243747885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default/6211851548243747885'/><link rel='alternate' type='text/html' href='http://dbconnectsolutions.blogspot.com/2011/02/ubiquitous-to-do-list.html' title='The Ubiquitous To-Do List'/><author><name>sleepydba</name><uri>http://www.blogger.com/profile/11089521522737443033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://4.bp.blogspot.com/_HE3LegTQe58/TU405ogRDvI/AAAAAAAADzg/BIKnAMqVOHc/s220/Logo.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6593043901922341518.post-6163831965624096669</id><published>2011-02-05T23:59:00.000-05:00</published><updated>2011-02-05T23:59:31.534-05:00</updated><title type='text'>What are my batch UBEs doing in the Oracle database?</title><content type='html'>The Oracle DBA is often asked to find out why a UBE is running so long, or if it's running at all inside the Oracle database.&amp;nbsp; A good place to start is to locate all UBEs that have database connections, and check what they are doing.&amp;nbsp; The following simple query can be used to locate the database connections:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;column process  heading "Process|Id"            format a10&lt;br /&gt;column sid      heading "Oracle|SID"            format 999999&lt;br /&gt;column event    heading "Wait Event"            format a10 wrap&lt;br /&gt;column machine  heading "Client|Machine"        format a10 wrap&lt;br /&gt;column program  heading "Program"               format a10 wrap&lt;br /&gt;column time     heading "Logon|Time"            format a20&lt;br /&gt;&lt;br /&gt;set pagesize 9999&lt;br /&gt;&lt;br /&gt;select  process,&lt;br /&gt;        sid, &lt;br /&gt;        substr(event,1,80) event,&lt;br /&gt;        substr(machine,1,20) machine,&lt;br /&gt;        substr(program,1,30) program,&lt;br /&gt;        to_char(logon_time,'mm/dd/yyyy hh24:mi:ss') time&lt;br /&gt;from    gv$session&lt;br /&gt;where   program like 'runbatch%'&lt;br /&gt;order   by 1,logon_time&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Of particular importance is the Process Id, which indicates the operating system process number of the UBE application, and the Wait Event, which indicates what the database session is doing.&amp;nbsp; These bits of information will help the DBA determine if the UBE is active, and what it might be waiting on inside the database.&lt;br /&gt;&lt;br /&gt;The above information can also be connected to the JDE job table to show the name of the UBE that is running, and to reveal exactly when the job was submitted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6593043901922341518-6163831965624096669?l=dbconnectsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbconnectsolutions.blogspot.com/feeds/6163831965624096669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbconnectsolutions.blogspot.com/2011/02/what-are-my-batch-ubes-doing-in-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default/6163831965624096669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6593043901922341518/posts/default/6163831965624096669'/><link rel='alternate' type='text/html' href='http://dbconnectsolutions.blogspot.com/2011/02/what-are-my-batch-ubes-doing-in-oracle.html' title='What are my batch UBEs doing in the Oracle database?'/><author><name>sleepydba</name><uri>http://www.blogger.com/profile/11089521522737443033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://4.bp.blogspot.com/_HE3LegTQe58/TU405ogRDvI/AAAAAAAADzg/BIKnAMqVOHc/s220/Logo.gif'/></author><thr:total>0</thr:total></entry></feed>
