访问SQLserver数据库时,以“使用NT登陆验证”的方式是怎样设置的呢
求救

解决方案 »

  1.   

    安裝的時候有確定選擇項目我一年全部隻能用isqlw,所以我不知道安裝如果不是選擇這樣 方式,是否還其他辦法設置但是出與安全來說,還是不要用nt驗証比較好
      

  2.   

    那如果选择了“使用NT登陆验证”的方式,VB代码的连接字符串如何写呢谢谢大侠了
      

  3.   

    Private Sub cmdConnect_Click()
    On Error GoTo errCmdConnect
    Call SetCursor(LoadCursor(0, 32514))With adoCnnn
         Count1 = IIf(Count1 < 8, Count1 + 1, 1)
    '以下 Count1 = 5 到 8 是基于 WINDOWS 集成的安全访问,需要 "Integrated Security=SSPI;Persist Security Info=False;" 但不需要 用户名和密码
    '以下 Count1 = 1 到 4 是基于 用户名和密码访问,    不需要 "Integrated Security=SSPI;Persist Security Info=False;" 但  需要 用户名和密码
    '实际上,基于 WINDOWS 集成的安全访问,仅需要 "Integrated Security=SSPI;";基于 用户名和密码访问,仅需要 用户名和密码;对于 Persist Security Info 的真假使乎无关紧要
         If Count1 = 1 Then
            .ConnectionString = "Provider=SQLOLEDB.1;   Data Source=LIBINGAO;   Initial Catalog=ResearchData;     UID=sa;PWD=;" 'Integrated Security=SSPI;Persist Security Info=False;"
         ElseIf Count1 = 2 Then
            .ConnectionString = "Provider=SQLOLEDB.1;   Data Source=LIBINGAO;   Database=ResearchData;            UID=sa;PWD=;" 'Integrated Security=SSPI;"
         ElseIf Count1 = 3 Then
            .ConnectionString = "Provider=SQLOLEDB.1;   Server=LIBINGAO;        Initial Catalog=ResearchData;     UID=sa;PWD=;" 'Integrated Security=SSPI;Persist Security Info=False;"
         ElseIf Count1 = 4 Then
            .ConnectionString = "Provider=SQLOLEDB.1;   Server=LIBINGAO;        Database=ResearchData;            UID=sa;PWD=;" 'Integrated Security=SSPI;"
         ElseIf Count1 = 5 Then
            .ConnectionString = "Provider=SQLOLEDB.1;   Data Source=LIBINGAO;   Initial Catalog=ResearchData;     Integrated Security=SSPI;Persist Security Info=False;" 'Persist Security Info=True; 也行
         ElseIf Count1 = 6 Then
            .ConnectionString = "Provider=SQLOLEDB.1;   Data Source=LIBINGAO;   Database=ResearchData;            Integrated Security=SSPI;"  '此时缺省 Persist Security Info=True,其真假无关
         ElseIf Count1 = 7 Then
            .ConnectionString = "Provider=SQLOLEDB.1;   Server=LIBINGAO;        Initial Catalog=ResearchData;     Integrated Security=SSPI;Persist Security Info=False;" 'Persist Security Info=True; 也行
         ElseIf Count1 = 8 Then
            .ConnectionString = "Provider=SQLOLEDB.1;   Server=LIBINGAO;        Database=ResearchData;            Integrated Security=SSPI;"   '此时缺省 Persist Security Info=True,其真假无关
         End If
         
         .Open
         
         If .State = adStateOpen Then
             Call vCmdSet
             MsgBox "SQL Server 数据库已成功连接 !" + vbCrLf + IIf(Count1 > 4, "基于 WINDOWS 集成安全访问!", "基于 用户名和密码安全访问!") + vbCrLf + CStr(Count1), vbInformation, MsgBoxTitle
             GoTo Continue
         Else
             MsgBox "SQL Server 数据库连接失败 !", vbCritical, MsgBoxTitle
             Exit Sub
         End IfContinue:
         .IsolationLevel = adXactReadCommitted
         .BeginTrans
          cSql = "CREATE TABLE AA (ID int,Name varchar(20),Age float,Memo1 varchar(100))"
         .Execute cSql, , adCmdText
         .CommitTrans
    End WithExit Sub
    errCmdConnect:
    If Not cmdConnect.Enabled And cmdClose.Enabled Then
       adoCnnn.RollbackTrans
    End If
    If Err.Number <> 3705 And Err.Number <> -2147217900 Then MsgBox Err.Description + ":" + CStr(Err.Number), vbCritical, MsgBoxTitle
    End Sub以上代码可以试试看!
      

  4.   

    所谓“使用NT登陆验证”就是如果你是nt域中的成员,并且在数据库中设置了一定的访问权限,那么你一登录上nt域后,你的程序就可以直接地访问相应地数据库而不必经过sql server的密码验证了,其实是用nt的登录验证作为sql server的安全验证。
    在使用adodc控件的时候最方便看出“使用NT登陆验证”与“使用sql server密码验证”的区别。
    一个adodc控件,在ConnectionString 中选使用连接字符串,生成,选microsoft ole db provider for sql server,下一步,然后你可以试试两种不同的方式:
    如果使用window nt集成安全设置选项,再选好数据库和表,就可以直接的访问数据库点击测试连接就可以通过,而不需输入用户和密码。。
    相反,如果你选“使用指定的用户名称和密码”,则你的终端可以不属于nt的域。。但你必须要输入用户名称和密码。