How should devs interact with the db?

Good day. For some time my organization has worked as most small shops do: web and software developers log into the database and create their own views, procs, etc. However we have grown to a much larger staff and have begun the process of transitioning into a more "professional" shop.
In your experience, how should web/software developers (and their products) interact with the production database? In other words, should they send their views to the DBA who will create said views? Or should they not be connecting to views at all? Should they have their own schema on the production database (and this will be the one which holds their views)?
If you say that the developers should have absolutely no access to the production db at all, then how should their products interact with the database?
I appreciate any links, advice, etc.
Thank you.
EDIT: the developers products are about 75% read-only search/reporting apps and 25% data entry.
Edited by: 893968 on Oct 12, 2012 8:39 AM

893968 wrote:
Good day. For some time my organization has worked as most small shops do: web and software developers log into the database and create their own views, procs, etc. However we have grown to a much larger staff and have begun the process of transitioning into a more "professional" shop.
In your experience, how should web/software developers (and their products) interact with the production database? In other words, should they send their views to the DBA who will create said views? Or should they not be connecting to views at all? Should they have their own schema on the production database (and this will be the one which holds their views)?
If you say that the developers should have absolutely no access to the production db at all, then how should their products interact with the database?
I appreciate any links, advice, etc.
Thank you.
EDIT: the developers products are about 75% read-only search/reporting apps and 25% data entry.
Edited by: 893968 on Oct 12, 2012 8:39 AMThink about this. The earlier in the process that the DBA becomes a reviewer/gatekeeper, the earlier in the process you can eliminate bad design decisions. Bad design decisions can be any of the following and more:
wrong data types
badly normalized tables
use of reserved or key words for object/table/column names
reinventing wheel (especially common when needing a sequence number)
object names that make no sense and fit no pattern.
I'm sure others will chime in with more.
The point being, if you allow developers the 'create' privilege at any level, they will create things that will become a headache for you further down the road. Let them write queries and procedures ... that's their job. But not tables, indexes, sequences, etc.
And don't fall for "it's just dev, we can clean it up when we move to QA". No, they won't. At the time it moves to QA it will be "we've got too much invested in this, we can't afford to make those changes now." And regardless of what was agreed to six months earlier, management will side with the developers because they really can't afford to pay for the re-work that would have been avoided in the first place with proper division of responsibility.
It will be a painful process to bring about. Someone will have to stand firm. And there will always be low-level complaints, but it still comes back to 'if you don't have time to do it right the first time, when will you find time to fix it later?" It's part of the DBA's job to make sure it gets done right the first time, and he will need management support to maintain it.

Similar Messages

  • How can i interact with the ALV if i am using the lvc_ and call method?

    i want to hide the last entry of a line when i click on the checbox of my ALV

    u want to hide or delete?
    instead of using check box, u can use a button to display there.
    it can be achived like below.
    data: ls_lvclayout type lvc_s_layo.
    LS_LVCLAYOUT-SEL_MODE = 'D'.
    now in set_table for_first_diaplay
    CALL METHOD GO_GRID->SET_TABLE_FOR_FIRST_DISPLAY
          EXPORTING
          <b>  IS_LAYOUT            = LS_LVCLAYOUT</b>
    do like above.
    then u click on the row, and the row will be selected.
    now using the method GET_SELECTED_ROWS, u can get the data of the selected row and u can now manipulate what ever u needed.
    data:
    SEL_ROW TYPE LVC_S_ROID,
    SEL_T_ROW TYPE LVC_T_ROID.
    CALL METHOD GO_GRID->GET_SELECTED_ROWS
        IMPORTING
          ET_ROW_NO = SEL_T_ROW.
    LOOP AT SEL_T_ROW INTO SEL_ROW.
              read table <itab> index SEL_ROW-ROW_ID.
              check sy-subrc = 0.
    < now write the logic  like making the field blank and modify the itab>.       
            ENDLOOP.

  • I have a macbook pro from 2009 and the software is 10.5.8 how do i update it so i can have more interaction with the applications

    i have a macbook pro from 2009 and the software is 10.5.8 how do i update it so i can have more interaction with the applications

    Note some programs may not work with Lion or later
    Upgrading to 10.7 and above, don't forget Rosetta!

  • How should I deal with it in the BMM Layer

    Hi all,
    I need a suggestion in a problem.
    Here is the scenario,
    In the physical layer, There are some fact to fact joins.
    ProductFact ----< PolicyFact ----< PolicyCoverFact ----< ClaimFact ----< ClaimPaymentFact ----< CorrespondenceFact
    There are some conformed dimension tables given below
    Geography is joined to ProductFact, ClaimFact
    Organisation is joined to PolicyCoverFact, CorrespondenceFact
    Currency is joined to PolicyFact, ClaimPaymentFact
    Also there are non-conformed dimensions such as,
    ProductType is joined to ProductFact
    PolicyCoverType is joined to PolicyCoverFact
    and there are many more......What I know is when there are fact to fact joins, we should make a logical table in the BMM layer and add both fact tables to the same LTS, But in this case, almost all the fact tables are joined directly.
    How should I deal with these fact to fact joins in the BMM layer? Any suggestions?
    Edited by: LavaRider on Aug 25, 2010 2:47 AM

    LavaRider wrote:
    I have to create many LTS for the fact table......
    1 LTS for ProductFact
    1 LTS for ProductFact & PolicyFact (which contain ProductFact and PolicyFact as sources)
    1 LTS for ProductFact , PolicyFact & PolicyCoverFact ........
    and so on.....
    have I understood correctly? Is that what you mean?Yes, the reason why I said to "keep" the firsts fact table in each source is to make the dimension work.
    For example, if the "product dimension" is only linked to "product fact", but not "policy fact" then you won't be able to do a report based on "product dimension" and "policy fact". Right ? To be able to do this report, OBIEE must do a join with "product fact" (this fact table become an intersection table). That's why you will add product fact in the "policy fact" source. Same for others source.
    But the name of "ProductFact & PolicyFact" source can be "policy fact". Because each row of this source is a policy fact.
    For the 3rd table, each row is a "policy cover fact". But to be able to join with "product dimension" and "policy dimension", you need to integrate "policy fact" and "product fact" tables in the logical source.
    and so on.

  • Do I interact with the browser or Plug-in

    I am interested in how Flash gets displayed in a web browser
    and how much of the interaction and display is dependant on the web
    browser.
    If you interact with a flash application on a web browser are
    you really interacting with the browser first which passes on the
    message to the Flash plug-in. Or after an initial set up is all
    interaction with the Flash application directly dealt by the
    Plug-in where the browser has essentially no idea what is
    happening?
    For example when I click on a "Skip" button on a flash
    animation shown on a web page, am I clicking on the browser or the
    Flash plug-in that is installed on the browser?
    I hope explained that clearly enough,
    Thanks

    I'm assuming fireflox with an L in the name is a typo?
    If not, can you provide more detail about the plugin? Who is the publisher, where is it installed, what is it for, etc.?
    By the way, if you see plugin-container.exe in the Task Manager, that is used to isolate Flash from firefox.exe so that crashes in Flash do not kill your entire browsing session. That's normal.
    Regarding extensions, which ones did you disable that become re-enabled on their own? If you don't want an extension, you should be able to remove it. If it was installed by third party software, then usually you can remove it through the Windows Control Panel and/or options in the related software.

  • How can I print with the black and white cartridge only?

    I am trying to print using the black and white cartridge only because magenta is out of ink but I'm getting the following error message in HP Photosmart C7200 series print dialog:
    The printer is out of ink.
    The following ink cartridges are empty: Magenta. Replace these ink cartridges to resume printing.
    How can I print with the black and white cartridge only?
    Mac OSX 10.7.3
    HP Photosmart C7280 (7200 series)
    This question was solved.
    View Solution.

    I am absolutely disgusted by this; clearly a scam from HP to make more money by selling extra ink cartridges!!  I will make sure to never buy any products from the shoddy rip off merchants at HP ever again!!
    You should be ashamed!!

  • Firefox has trouble initiating, and when it finally does, every time I attempt to interact with the application it stops responding.

    Firefox won’t initialize: I can open any program on my computer except for Firefox so it isn't that my computer is slow. It doesn't open at all no matter how long I wait. I've left the room and let the computer run before and it still wasn’t running when I came back. After a few clicks it finally it comes up, and I have to wait because I’ve clicked multiple times so of course it's going to open multiple times. When I'm online after successfully closing all but one Firefox window so that I don't crash my poor laptop, every time I attempt to interact with the program via clicking a link, opening a new tab, or typing something into the URL bar, the program freezes and goes into the not responding stage. Rarely, an unresponsive script message will pop up.

    See:
    * http://kb.mozillazine.org/Preferences_not_saved
    Start Firefox in <u>[[Safe Mode]]</u> to check if one of the extensions is causing the problem (switch to the DEFAULT theme: Firefox (Tools) > Add-ons > Appearance/Themes).
    * Don't make any changes on the Safe mode start window.
    * https://support.mozilla.com/kb/Safe+Mode
    * https://support.mozilla.com/kb/Troubleshooting+extensions+and+themes

  • Weblogic security authentication; question to interact with the realm

    Hi, I have a quick question about weblogic security authentication....
    We are using weblogic 81sp3. We have user-group info in an Novell eDirectory LDAP server.
    Currently, a Novell Authenticator provider is configured under : Security > Realms > myRealm > Providers > Authentication This tells Weblogic from where to get the user and groups. Weblogic caches this information of the logged on users for certain time ( example : 60 secs ) after which it cleans the cache for all inactive users. We want to interact with the Weblogic cache. Add more user profile information to this cache and use it in our application .
    Does somebody know how to programmatically interact with Weblogic user-group cache - read , write , update and delete user-group info in cache and control time to live for the cache ?

    already checked
    TTLCache class which weblogic provides. But they seem to depracetd it
    help ?

  • How do I interact with a loaded swf?

    Hi,
    I have a "lesson" that I'm building that will display a series of "pages" based on an XML file. I have simple navigation buttons that work to page through the XML file. but I'd like to use load an external SWF file with buttons to use as my navigation panel. Everything is AS 3.0. The code to load the navigation movie looks like this:
    // load navigator
       navLoader = new Loader;
       navLoader.contentLoaderInfo.addEventListener(Event.INIT, handleInit);
       navLoader.x = 50;
       navLoader.y = 200;
       lessonSprite.addChild(navLoader);
       navLoader.load( new URLRequest("Navigator1.swf"));
    The loaded navigation movie has two buttons. How do I add an event listener to those buttons so that they call a function in the parent movie so I can detect when the user clicks on the button named "GoNext" in the loaded movie?  I've tried several ways but I've had no luck. Could someone please point me in the right direction? This navigation panel is only one application of this sort of communication that I'll need in other parts of this type of lesson so I really need to figure out how to detect user interaction interaction with the loaded movie. Guess I need to know how to call a function in the parent movie from the loaded movie.
    Thanks,
    Peter H.

    Hey Pete,
    The answer that you seek and the simplest one as well will be from the MouseEvent. that  you will most likely have applied to your loaded swf.
    As long as both swfs are in the same domain, you wont have any issues with security and therefor, the MouseEvent. which bubbles up, will be able to reach your swf file which has loaded it.
    You can then write your code in your loaded swf to simply listen to the loadedMovieClip  by targeting the contents of navLoader just like this,
    navLoader.content.addEventListener(MouseEvent.MOUSE_DOWN,onDown)
    protected function onDown(me:MouseEvent){
    now providing you have given your two buttons names in your loaded swf, you will be able to perform addition tasks by receiving the name of the target.
    protected function onDown(me:MouseEvent){
    var btnClip:Movie= me.target as MovieClip
              var btnName=btnClip.name
    if(btnName==(button1)){
         //do the following
    }else{
           //it was button two
    button1 was just a random name in this case .
    This will do the trick

  • How to use labview with the handyboard

    Hi,
    how to use labview with the handyboard
    Thx...

    I'm assuming you're talking about this, since you didn't provide a link for those of us who don't know what you're talking about.
    As the other poster said, you didn't say how you want to use LabVIEW with it.  If you want to write LabVIEW programs than run on the microprocessor, then you're out of luck.  If you want LabVIEW to interact with it, then you've got a couple of options, SPI probably being the best, but it also has DI and AI that you could use to communicate with it - the DI's could be used as a parallel interface.
    Message Edited by Matthew Kelton on 12-17-2007 02:21 PM

  • How should i start with web dyn pro abap

    Hi,
    I have been working on webdynpro java now i would like to start working on webdynpro abap
    could any one tel me how should i start with it.. pdfs, blogs would surely help??
    i do have sufficient knowledge of abap too..
    some brief idea about what is "web dynpro for abap" would surely help me
    Thank u in advance...

    hi,
    please do a search before posting for basic questions, i searched the same and got around 700 hit.
    any ways check these links.
    As the name suggests Web Dynpro for ABAP uses exactly the same meta model as its cousin Web Dynpro for Java. A Web Dynpro component, a Web Dynpro view, a Web Dynpro model, a Web Dynpro controller have the same semantics both for ABAP and Java. The main difference is the designtime environment, the development infrastructure and the runtime environment.
    The designtime environment is properly embedded in the ABAP Workbench where Web Dynpro artifacts are simply a new category like BSP applications or classical dynpro based applications before. Also no surprises regarding the development infrastructure. The correction and transport system keeps track on all changes that are done, versions them and helps to propagate the Web Dynpro application from development to production like you would do with ordinary BSP or dynpro-based applications.
    Last not least the execution platform is the ABAP server that produces application content ready to be integrated in the NetWeaver Portal seamlessly. Features like portal eventing can be used between applications written in ABAP or applications developed with Java.
    The following r excellent websites containing PDF & PPT docs on ABAP Web Dynpro:
    Web Dynpro for ABAP in SDN
    https://www.sdn.sap.com/irj/sdn/developerareas/webdynpro?rid=/webcontent/uuid/512040e1-0901-0010-769c-c238c6ca35d9
    Developing ABAP Applications Using Web Dynpro
    http://help.sap.com/saphelp_nw2004s/helpdata/en/42/d41b25d2216babe10000000a1553f6/frameset.htm
    Web Dynpro ABAP: Development in Detail
    http://help.sap.com/saphelp_nw2004s/helpdata/en/03/0048413e466e24e10000000a155106/frameset.htm
    WDA Sample programs & tutorials
    https://www.sdn.sap.com/irj/sdn/developerareas/webdynpro?rid=/library/uuid/49f2ea90-0201-0010-ce8e-de18b94aee2d
    Web Dynpro ABAP Demonstration Videos
    Web Dynpro ABAP Demonstration Videos
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/28113de9-0601-0010-71a3-c87806865f26?rid=/webcontent/uuid/fed073e5-0901-0010-4eb4-c9882aac7b11
    SAP Web Dynpro Overview
    http://wendtstud1.hpi.uni-potsdam.de/sysmod-seminar/SS2005/presentations/12-WebDynpro-Overview.ppt
    Web Dynpro General Concepts
    https://admin.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/30ea953b-8e57-2910-4e85-f7be60b00407
    Web Dynpro
    http://help.sap.com/saphelp_nw2004s/helpdata/en/15/0d4f21c17c8044af4868130e9fea07/frameset.htm
    Web Dynpro for ABAP: Tutorials for Beginners
    Web Dynpro for ABAP: Tutorials for Beginners
    Developing ABAP applications using Web Dynpro Configuration Scenario
    http://www50.sap.com/businessmaps/8729920B31E343F099B71340B15F06DB.htm
    Web Dynpro for ABAP
    http://www.vnsg.nl/temp/508773747/A1-WDA_Themadag.pdf
    Yogesh N

  • How can I connect with the AspNetUsers table in MVC 5?

    I have a model, in which I have used several foreign keys from other tables. The point is that I also need to get the Id of the user, from the AspNetUsers table, though, I don't know how. I have done something like this, but it doesn't seem to be working:
    public class Message
        public int MessageID { get; set; }
        [Required(ErrorMessage="Please type a message to submit")]
        [DataType(DataType.MultilineText)]
        [Display(Name="Message")]
        public string MessageText { get; set; }
        public DateTime WrittenOn { get; set; }
        [Required(ErrorMessage="Please select a ticket")]
        [ForeignKey("Ticket")]
        [Display(Name="Ticket")]
        public int TicketID { get; set; }
        public virtual Ticket Ticket { get; set; }
        [Required(ErrorMessage = "Please select a business")]
        [ForeignKey("Business")]
        [Display(Name = "Business")]
        public int BusinessID { get; set; }
        public virtual Business Business { get; set; }
        [Required(ErrorMessage = "Please select a user")]
        [ForeignKey("aspnetusers")]
        [Display(Name = "User")]
        public int Id { get; set; }
        public virtual ApplicationUser ApplicationUser { get; set; }
    When I try to create a controller using the Entity Framework with my model, I get an error message saying:
        The ForeignKeyAttribute on property 'Id' on type ... is not valid. The navigation property 'aspnetusers' was not found on the dependent type ... The Name value should be a valid navigation property name.
    If someone could help me solve the problem, I would be glad.

    Hi Toni,
    I see that this particular query is been answered in the following thread.
    http://stackoverflow.com/questions/25372436/how-can-i-connect-with-the-aspnetusers-table-in-mvc-5
    You can also refer the following links, hope this helps.
    http://stackoverflow.com/questions/20071282/aspnet-identity-and-mvc5
    http://blogs.msdn.com/b/webdev/archive/2013/10/16/customizing-profile-information-in-asp-net-identity-in-vs-2013-templates.aspx
    Regards,
    Bharath

  • Automation engine is unable to playback the test because it is not able to interact with the desktop : Unsing VS2012 on Remote Desktop, Window not Minimized

    Hi
    I am running these tests using VS2012 on a remote desktop. The session is alive when I try to run it. The Window is not minimized.
    The tests run fine on my own machine. The VM has test agent and controller installed on it, but I am not using them right now to run the tests. Do you know what setting on my machine might casue this issue ?
    Stack trace:
    Test Outcome: Failed
    Test Duration: 0:00:00.6287248
    Result Message: Error calling Initialization method for test class <TestClassName> Microsoft.VisualStudio.TestTools.UITest.Extension.UITestException: Automation engine is unable to playback the test because it is not able to interact with the
    desktop.  This could happen if the computer running the test is locked or it’s remote session window is minimized.
    Result StackTrace: 
    at Microsoft.VisualStudio.TestTools.UITesting.UITestLogGenerator.ExceptionRecorder(Exception exception, Boolean rethrow)
       at Microsoft.VisualStudio.TestTools.UITesting.Playback.ThrowIfScreenLockedOrRemoteSessionMinimized()
       at Microsoft.VisualStudio.TestTools.UITesting.Playback.Initialize()
       at Microsoft.VisualStudio.TestTools.UITesting.CodedUITestExtensionExecution.BeforeTestInitialize(Object sender, BeforeTestInitializeEventArgs e)
       at Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExecution.RaiseBeforeTestInitialize(BeforeTestInitializeEventArgs args)
       at Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExecuter.RunInitializeMethod()

    Hello,
    Thank you for your post.
    “The VM has test agent and controller installed on it, but I am not using them right now to run the tests.”
    In this case, how do you run the Coded UI test on the VM? You start the Coded UI test from your own machine and then open the remote desktop session to make the test run on VM?
    If yes, I am afraid that you can’t do like that. You need to use the test controller and the agent in order to run the test on the remote desktop. Or you create the app and do coded UI test against it on the VM completely.
    If I have misunderstood anything, please feel free to let me know.
    Best regards,
    Amanda Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

  • Error 0x000006F7 - Problems interacting with the card

    Hello,
    I am using
    - GPShell
    - Java Card Gemalto TOP IM GX4
    - Smart Card Reader Gemalto IDBridge CT40
    I've tried this GPShell script:
    mode_201
    enable_trace
    enable_timer
    establish_context
    card_connect
    select -AID A000000018434D00
    open_sc -security 3 -keyind 0 -keyver 0 -key 47454d5850524553534f53414d504c45 -keyDerivation visa2 // Open secure channel
    get_status -element 20
    card_disconnect
    release_context
    But I get the following error:
    select_application() returns 0x000006F7 (The fragment has received incorrect data)
    I get This error with any script that interacts with the Java Card after installing and testing an applet on the card that generates a message encrypted with the DES algorithm.
    Console:
    mode_201
    enable_trace
    enable_timer
    establish_context
    command time: 218 ms
    card_connect
    command time: 203 ms
    select -AID A000000018434D00
    Command --> 00A4040008A000000018434D00
    Wrapped command --> 00A4040008A000000018434D00
    select_application() returns 0x000006F7 (El fragmento ha recibido datos incorrectos)
    What should I do?
    Thanks in Advance.

    Hi Shane,
    I checked mi smart card reader, is working correctly with the drivers correct.
    I think that the card is Unconfigured because now for show all applets that are installed on the card, is generated the same error. Before I could do it, without problems.
    mode_201
    enable_trace
    enable_timer
    establish_context
    command time: 265 ms
    card_connect
    command time: 203 ms
    select -AID A000000018434D00
    Command --> 00A4040008A000000018434D00
    Wrapped command --> 00A4040008A000000018434D00
    select_application() returns 0x000006F7 (The fragment has received incorrect data)
    I can reboot the JavaCard to reset it to its initial state? do you know do it?

  • How does Openscript Interact with web components ?

    I was wondering how does openscript interact with web objects (eg Edit boxes, buttons), is it through some JNI api ? If yes in which package I can find this ?

    I am going to make the assumption from your comments that you are asking about using OpenScript to test applications based on Apple's WebObjects server. If that is a bad assumption let me know ...
    The scripts you build against the application will work in a similar manner to those that are built against other java based application servers in that the tool will be using the various key attributes of the html objects to locate them and replicate actions against them. Typical UI driven scripting ... That said, if your testing brings you down a level from the UI and you are trying to test some of the components of the application server tier specifically, well, then you might have to write your own java code to do it.

Maybe you are looking for