Category: Editorial

  • Maintain Your Trustworthiness

    Many of us that are DBAs and/or sysadmins find ourselves with privileged access to many systems. We can often read the data that’s stored in these systems, whether that’s a relational database, a NoSQL store, or even a mail system. As a result, it is incumbent upon us to be trustworthy and maintain confidentiality with privileged information.

    Overall I think most of us do this, but there are always some rogue administrators out there, some of which might take malicious actions. There have been a few people that were arrested or sued for hacking into systems, trashing backups, or causing other issues. Often those are emotional outbursts that disrupt operations, and many people are aware there is an issue. However, what if people weren’t aware they were being hacked in some way?

    I ran across this story about some “admin” software being sold on a hacker forum site, which was marketed as sys admin software, but used to control other people’s computers without their knowledge. This is essentially a remote access trojan application that a developer sold to others who used it to steal data from their victims. The software developer was arrested and signed a plea agreement, knowing that it was used in a malicious manner.

    For those of us that have privileged access, we might learn passwords of users as we watch them enter the value over and over. We certainly might work with their data to help them solve an issue or understand the manipulation taking place. We We may have auditing systems or logs that allow us to replay or examine the data values people have entered into applications. We do this with their permission and understanding, or at least someone’s permission. A user might not know we have substantial instrumentation, perhaps even the equivalent of a keystroke logger, but there will be some management that is aware of the existence of these tools.

    While I’ve played a few pranks on people, moving keyboards or mice, I’ve always ensured they knew it was me in a short period of time. Using admin software to spy on others without their knowledge is a breach of trust and ethics, in my opinion. Even being asked to use this by management would be immoral for me.

    Knowing this type of software exists, is important, and if you find it, I’d make sure you report it to management immediately, preferably to a few different people. If anyone is using tools to spy on users, they’re likely up to no good and I’d hope we would all attempt to put a stop to the practice.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 4.6MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • The Master of the Schema

    “The database … should be the master of the schema”.

    It’s not often I see an application developer talk about the importance of the database, or at least that the database (and data) are very important to the success of the application, but in this case, that’s what I saw. The quote is from this blog, which talks about the problems of the code first approach to building an application. It’s from a Java development company, though it’s their jooQ product blog that actually generates Java code from the database, so they get the need to pay some attention to the database.

    The thrust of the article is that using an ORM is fine, but this isn’t necessarily the best way to design your datastore if you need a relational system. There will be mistakes made in naming objects, in structuring them and ensuring indexes exist and more. The longer you go with generated database code from some code-first type system, the more issues you might have later as you try to modify both the application and database, especially the database, since you can’t drop it and recreate it.

    If we could drop the tables and rebuild them, life would be great. Maybe we should keep copies of data on the clients, and just reload the necessary data after a deployment… It would make my life easier as a database professional, but I suspect this isn’t the best way to ensure data quality and consistency (not to mention completeness).

    I agree that if you’re building an application, you should go database first. At least start with some basic structures and learn to modify them. The practice you get modifying code, with scripts not GUIs, will be invaluable later to both developers and DBAs/admins. You’ll start getting practice and understand what it means to deploy scripts to your database. After all, making schema changes with scripts in your development database is the first “practice” you get for deployment. If you can’t get the scripts to work here, how would you have any confidence they’ll work in production?

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 3.1MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • The Worst Day

    I challenged people to write about their daily work a few weeks ago. I haven’t see a lot of posts, but I am still hopeful some of you will document your day, as Iris Classon has done a few times. It’s not that I expect a lot of the same posts, but rather, I’d like you to talk about the way a specific day has flowed for you. Did you work on a problem? Just pick up tickets and perform routine scripting? Learn a specific thing? Give us some details. I expect everyone’s day to be different.

    Jon Shaulis broke his series in a few parts, one of which was his worst days as a DBA. I thought that was interesting and it brought back from memories for me. Overall, I’ve had mostly good days, and even the crisis situations weren’t that bad.  That being said, there are some tough days, both physically and mentally, and worse, tough for my family.

    This week, I wanted to ask you what was the worst day in your career? Or maybe the worst event, since some of the tough times I’ve had actually spanned multiple days. Let us know what happened, but also, what the challenge was for you?

    I’ve got a couple items. My first exposure to SQL Server was as a network admin. I helped a group of 4 other FTEs run a large Novell Netware environment of over 1000 nodes. We handled the servers (6 or 7), email, and more for hundreds of employees. We managed Netware servers, Windows (and DOS) desktops, and way too many printers. As a part of a government mandated change, we rolled out a new system at midnight on Jan 1, backed by this new database, SQL Server. We installed an OS/2 server at the end of December and prepared for the cutover from the old system. Since this was a mandated change, we weren’t going to roll back. Ever.

    I arrived at work on Dec 31, around 6pm. I planned on getting setup, checking with developers, and being ready. We cut over at midnight and people began using the system. Within 30 minutes, we had problems, including an overloaded SQL Server that would freeze up. We ended up babysitting the server to reboot it regularly, as well as trying to determine the problems. I left work on Jan 2, around noon. That was a bad day.

    Another bad way was with a SQL Server 6.5 instance that ran financial services. We detected corruption in a table and got on the phone with Microsoft one afternoon. I worked with support, being handed off from the west coast to Asia to North Carolina throughout the night, trying to debug the problems and extract data. A nice 30+ hour, high stress day for me. After that I kept a pillow and blanket in my desk, which I used a few more times that year.

    Those were tough times, but most of my days are great. Some are long, some stressful, but overall, I’ve enjoyed my time doing database work. Can you say the same thing?

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 5.3MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • Unwired for Weeks

    I took a few weeks off recently for a vacation with my family. We traveled from Denver to Yellowstone National Park in Wyoming and then on to Glacier National Park in Montana. We drove a horse trailer, camping along the way in the vast outdoors of America. It was a wonderful time and a beautiful part of the country. If you get the chance to visit, I’d highly recommend the trip.

    One of the interesting things on this trip was that I was very unwired. In fact, I didn’t even take a laptop, which is a rarity for me. Often I’ll take one to jot notes, sketch an editorial, or just have around to check on things. This time, I didn’t bother, and neither did my wife. One kid did, but only because he was enrolled in a couple classes (CS and Math) this summer and had assignments to do.

    The only device I had was my phone, which didn’t have service for much of the trip. Both during long drives (I was glad Google Maps downloads directions), at many of our campsites, and in the national parks, there was little service. In fact, when I did have service, I was surprised. The camping locations did have wi-fi, but I only used it to upload pictures of the trip and didn’t even bother checking social media as I posted. I mostly uploaded pictures to ensure I had a backup.

    I did check email once early on to be sure that I hadn’t forgotten anything from work early, and forwarded on a couple items to people, but when I arrived home last week, I had hundreds of messages from Redgate and probably close to a thousand from SQLServerCentral. It was quite a chore handling and deleting a number of items, and took half of my Monday back in the office.

    What was interesting to me is that I didn’t really miss the social media much, certainly didn’t miss the news, and nothing that important came up. I didn’t worry about work, knowing that something would go wrong (such as a few buggy questions) and that someone would handle the situation (thanks to Grant for fixing things) or delay the item until I returned. I found numerous meetings canceled or rescheduled without me and quite a few hastily dashed emails or queries that were later retracted or amended. In fact, going through emails from newest to oldest allowed me to delete older, out of date messages without reading them.

    I rarely take more than a few days off at a time, usually just a long weekend here and there, but this proved (again) something I’ve suspected for a long time. Much of the pressure we feel with deadlines at work is arbitrarily imposed. Whether we do it to ourselves or someone else picks a datetime, there isn’t any rationale for the choice. Usually the goal is to complete work as fast as possible, but if there are delays, if something comes up, with life, other tasks, unforeseen failures (hardware/software) get in the way, the business will survive.

    I learned a long time ago that despite my best efforts, things will go wrong and there will be delays. I’ve learned to expect them, accept them and try to not add any extra stress on myself when things are delayed. Go home at a reasonable hour most of the time, live the rest of your life, while doing the best professional job you can. There will always be more work, and the business will survive if most of your work ends up being delayed slightly.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 6.2MB) podcast or subscribe to the feed at iTunes and Libsyn.