Password Handling

  • Comments posted to this topic are about the item Password Handling

  • Generally, I do my best to never let a SQL login have any sort of elevated privs on a database let alone the server. We still have one program (Microsoft Dynamics GP, can I get a security nightmare amen anyone?) that require administrators to use [sa] for some tasks. This absolutely kills me, but it is what it is.

    Anyway, I will typically "randomly" generate a 15 to 20 character password. I will then use various forms of communication (email, im, text) to relay the password to the user who needs it. I never send the server/username/password in the same correspondence or using the same method.

    This is not fool proof, but the best I could come up with so far. Looking forward to hearing how others handle this as well.

  • Nice editorial.

    For the end users, that are allowed direct access to a sql server, domain accounts are required. They are granted access thru AD groups, so their account does not exist on the sql server.

    For our applications we use service accounts, both domain and sql. All of our service accounts are stored in KeyPass2 (http://keepass.info/). The system admins and dba share one safe and the developers share a separate one. KeyPass2 has a password generator built in.

    When I create the accounts, the password is a minimum of 20 characters long. The person that needs the account is sent an email with the username, sql server, database and which safe the password is in. Then they look it up in the safe.

    So far it works for us.

    Bill Soranno
    MCP, MCTS, MCITP DBA
    Database Administrator
    Winona State University
    Maxwell 143

    "Quality, like Success, is a Journey, not a Destination" - William Soranno '92

  • Nice editorial Steve! The last 2 places that I have worked with large production systems, internal company accounts were all Windows AD accounts.

    The lone exception, 3rd party vendors software. whenever they came in house and asked for SA access we could normally get the Software Engineers on the phone and get the settings lowered, example if it needed the ability to truncate or drop and create structures, that is just DDL_Admin on the database in question, not SA for the entire server.

    For password's there have been different requirements. I've worked in places where the DBA's would create the account and issue the password, I would use Keypass http://keepass.info/ to randomly generate a complex password and store it.

    I've worked in others where the DBA's would request an account, and we would be issued a password from a password management group. and if a SQL Authentication account was required we would get the password from this department, and then create the account and assign permissions.

  • I also use KeePass2. It generates very strong passwords for me and I can safely store them in KeePass as well and I always have them in case someone forgets, and it is free to boot! The password length defaults to 20 but you can change that as well. In my experience 20 characters is just too much for most people, so I lower it to 8-10.You can also set up folders so you can keep your Production, QA, and Development environments separated. Nice! 😀

    http://keepass.info/download.html

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

  • In my last position as DBA, I used PasswordSafe to generate / store complex passwords. In the "Notes" section I would also include who requested it, when, and what server / database / application it was for. Access to the safe was limited to about 5 folks total (myself and a few other trusted folks / system admins).

    The username / password was then emailed to the requestor in a PGP encrypted email.

  • Hmmm between Bill, Travis, and myself I'm sensing a trend 🙂 Keypass is indeed a wonderful thing.

  • Where I work, we require that a SQL login be created by the DBAs. We require that the password be 10 characters long and have 2 symbols, 2 upper case, 2 lower case and 2 numbers. We then must hand deliver the password and username to the developers if they are in our building or drive it to them if they are nearby, when that fails by phone is acceptable. We also store our passwords in Password Safe.

    All in all, this has worked well for us. Only problem is it leaves a physical copy of the password in the hands of the developer which may not be best.

  • My Scenario- mid sized managed hosting company, Sql Server used as datastore for CMS

    When DB websites are created, they are done via a web interface by a WebDBA (generally myself).

    The passwords used are random 12 character minimum.

    The Sql Server is not accessible via the internet

    I email a link to the developer needing the site where they can retrieve connection string. The webpage containing this uses Windows AD for authentication, and it too is not visible on the internet.

    Director of Transmogrification Services
  • baxterr (5/18/2012)


    Generally, I do my best to never let a SQL login have any sort of elevated privs on a database let alone the server. We still have one program (Microsoft Dynamics GP, can I get a security nightmare amen anyone?) that require administrators to use [sa] for some tasks. This absolutely kills me, but it is what it is.

    I dealt with GP years ago. Through some SQL traces and calls with GP support, we determined that the app needs sa for new logins and potentially new databases. However if those are setup by a DBA, the app picks them up. We removed sysadmin from the app logins and they would call us when they needed a new login added.

  • TravisDBA (5/18/2012)


    I also use KeePass2. It generates very strong passwords for me and I can safely store them in KeePass as well and I always have them in case someone forgets, and it is free to boot! The password length defaults to 20 but you can change that as well. In my experience 20 characters is just too much for most people, so I lower it to 8-10.You can also set up folders so you can keep your Production, QA, and Development environments separated. Nice! 😀

    http://keepass.info/download.html%5B/quote%5D

    I saw an analysis of cracks on current hardware (including AWS clusters). 10 characters is reasonable crackable. Days, but can be done. 12 was much more secure for the foreseeable future.

  • sebmr2 (5/18/2012)


    All in all, this has worked well for us. Only problem is it leaves a physical copy of the password in the hands of the developer which may not be best.

    Does this password change between dev and prod (and qa)

  • Steve Jones - SSC Editor (5/18/2012)


    TravisDBA (5/18/2012)


    I also use KeePass2. It generates very strong passwords for me and I can safely store them in KeePass as well and I always have them in case someone forgets, and it is free to boot! The password length defaults to 20 but you can change that as well. In my experience 20 characters is just too much for most people, so I lower it to 8-10.You can also set up folders so you can keep your Production, QA, and Development environments separated. Nice! 😀

    http://keepass.info/download.html%5B/quote%5D

    I saw an analysis of cracks on current hardware (including AWS clusters). 10 characters is reasonable crackable. Days, but can be done. 12 was much more secure for the foreseeable future.

    Steve,

    Agreed, 12 is manageable for most users I think. 20 is just overkill and it is the default. You must also keep in mind that many of our users are not techno-savvy and it does not take much to confuse them at all. So we try to strike a good compromise with them and keep our passwords strong, but reasonable, so that they don't end up locking their SQL accounts out all the time either..:-D

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

  • TravisDBA (5/18/2012)


    Steve,

    Agreed, 12 is manageable for most users I think. 20 is just overkill and it is the default. You must also keep in mind that many of our users are not techno-savvy and it does not take much to confuse them at all. So we try to strike a good compromise with them and keep our passwords strong, but reasonable, so that they don't end up locking their SQL accounts out all the time either..:-D

    Completely agree. 20 is hard, even with phrase like "ILoveSQLServer4Ever0" Twelve is much easier, though the number grows all the time. A couple years ago I would have stuck with 10.

  • For those of us that find things like password length interesting, have a look at the page below. This guy is a great security researcher and this is an super clever approach to passwords. Be sure to read the entire page.

    https://www.grc.com/haystack.htm

Viewing 15 posts - 1 through 15 (of 21 total)

You must be logged in to reply to this topic. Login to reply