How do I add a login to the "sysadmin" server role?

Posted on 2009-02-20
Last Modified: 2012-05-06
I am having trouble with the following scenario:

Windows Server 2008 Enterprise Edition, SQL Server 2008 Enterprise Edition, and Team Foundation Server all running on one machine.

I am trying to create a maintenance plan to backup the TFS databases. In order to do that I have to be able to work in the SQL Management Studio with an account that is a member of the "sysadmin" server role.

The only member of the "sysadmin" server role is the "SA" account. The "SA" account password was left blank during install. When I try to add a new login (my domain admin account in this case) to the "sysadmin" server role I recieve the error message noted in "ERROR MESSAGE 1" below.

If I try to log into the SQL Management Studio with the SA account via the SQL Authentication mode I receive the error message noted in "ERROR MESSAGE 2" below.

My goal is to either:

(A) Add another login to the "sysadmin" role
(B) Login to the SQL Management Studio with the "SA" account

Please help! Thank you.

Add member failed for ServerRole 'sysadmin'. (Microsoft SqlServer.Smo).

|_  An Exception occurred while executing a Transact-SQL statement or batch.


    |_ User does not have permission to perform this action. (Microsoft SQL Server, Error: 15247)


Cannot connect to <INSTANCENAME>

|_ Login failed for user 'SA'. (Microsoft SQL Server, Error: 18456)

Open in new window

Question by:dfxdeimos
    LVL 60

    Assisted Solution

    you can do this:

    execute sp_addsrvrolemember  @loginame=  'domain\loginname'
        , @rolename = 'sa'
    LVL 35

    Expert Comment

    by:David Todd

    when trying to log in as SA, do you have authentication set to mixed? And I'd fix the blank password ASAP.

    LVL 15

    Author Comment

    @ Chapmandew

    How would I execute that command? You can't just type what you posted at the command line... Please provide the FULL command.

    @ Dtodd

    How would I confirm that? In the login window there is a dropdown next to "Authentication" that has "Windows Authentication" and "SQL Server Authentication" in it. I set it to "SQL Server Authentication" when trying to log into the SA account.
    LVL 60

    Expert Comment

    Well, that is the FULL command.  connect to the database in managemetn studio, open a new query window, paste that in there and run it.
    LVL 15

    Author Comment

    Ok, you didn't mention anything about a query window, so I had no idea.

    "SA" doesn't work, I had to replace it with "sysadmin". Result is:

    Msg 15247, Level 16, State 1, Procedure sp_addsrvrolemember, Line 29
    User does not have permission to perform this action.
    LVL 15

    Author Comment

    Perhaps you didn't read my question thouroughly. As I noted, the only "sysadmin" is the "SA" account, and I cannot log into the Management Studio with the SA account.
    LVL 60

    Expert Comment

    lets try this.  do you know of anyone who is an admin on the machine that SQL is installed on?  likely, the local admins are also members of the sa group, and can add you as a sysadmin on the box using the commands I gave above.
    LVL 15

    Accepted Solution

    No, the ONLY member of the "sysadmins" group is the "SA" account.

    The "SA" account has it's login abilities disabled.

    What it seems like I am going to have to do is to start cycle the service and put it in matainence mode and then use a local admin account to run a "sp_addsrvrolemember" command.

    Featured Post

    IT, Stop Being Called Into Every Meeting

    Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

    Join & Write a Comment

    JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
    Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
    Via a live example combined with referencing Books Online, show some of the information that can be extracted from the Catalog Views in SQL Server.
    Via a live example, show how to setup several different housekeeping processes for a SQL Server.

    745 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    13 Experts available now in Live!

    Get 1:1 Help Now