Solved

Connecting to SQL 2005 database using Domain Account

Posted on 2010-09-16
4
305 Views
Last Modified: 2012-08-13
I am trying to connect to a database on SQL 2005 using the only thing that has perms to it right now -- a windows account.   It's a service account though, not the IUSR account on the web server.  Anyone have an example of a working ASP script to connect to a SQL 2005 database with a domain service account?

Thanks in advance,
TWB
0
Comment
Question by:TWB_Systems
  • 2
4 Comments
 
LVL 15

Expert Comment

by:AmmarR
ID: 33697324
for your particular site, change the IIS settings, and make it instead of anonymous access authentication method, change it to Integrated windows authentication.

or if you cant do that

you can login with your code as a different windows user and access sql.

check code below



public sub connecttosql()
        If impersonateValidUser('validuser', _
        'validdomain', 'validpassword') Then
            'Insert your code that runs under the security context of a specific user here.
            ' insert the code to connect to sql under this user
            undoImpersonation()
        Else
            'Your impersonation failed. Therefore, include a fail-safe mechanism here.
        End If
end sub


    Public Function impersonateValidUser(ByVal userName As String, _
    ByVal domain As String, ByVal password As String) As Boolean

        Dim tempWindowsIdentity As WindowsIdentity
        Dim token As IntPtr = IntPtr.Zero
        Dim tokenDuplicate As IntPtr = IntPtr.Zero
        impersonateValidUser = False

        If RevertToSelf() Then
            If LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, token) <> 0 Then
                If DuplicateToken(token, 2, tokenDuplicate) <> 0 Then
                    tempWindowsIdentity = New WindowsIdentity(tokenDuplicate)
                    impersonationContext = tempWindowsIdentity.Impersonate()
                    If Not impersonationContext Is Nothing Then
                        impersonateValidUser = True
                    End If
                End If
            End If
        End If
        If Not tokenDuplicate.Equals(IntPtr.Zero) Then
            CloseHandle(tokenDuplicate)
        End If
        If Not token.Equals(IntPtr.Zero) Then
            CloseHandle(token)
        End If
    End Function

Open in new window

0
 
LVL 22

Expert Comment

by:Om Prakash
ID: 33698763
Please check the following link which contains all the options for connecting to SQL server 2005
http://www.connectionstrings.com/sql-server-2005
0
 
LVL 22

Accepted Solution

by:
Om Prakash earned 500 total points
ID: 33698771
Example:

dim conn
strConn = "Driver={SQL Server};Server=Server_name;Database=database_name;Trusted_Connection=Yes;"
Set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString= strConn
conn.Open

Open in new window

0
 

Author Closing Comment

by:TWB_Systems
ID: 33737170
Not the route I wanted to go, but the route I ended up taking.
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

by Mark Wills Attending one of Rob Farley's seminars the other day, I heard the phrase "The Accidental DBA" and fell in love with it. It got me thinking about the plight of the newcomer to SQL Server...  So if you are the accidental DBA, or, simp…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

786 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