簡體   English   中英

通過MS Access VBA前端更改SQL Server密碼

[英]Change SQL Server Password through MS Access VBA Front-End

我一直在開發一個MS Access應用程序,它允許一些同事輕松地與我們的SQL Server上的數據進行交互。 程序即將完成,但還有一件小事 - 允許用戶通過MS Access前端更改其SQL Server密碼。 我一直在谷歌上搜索我的小心臟,但過了一會兒,一切都開始看起來一樣(即使答案就在我面前!)。

我找到了一些有用的鏈接,但是我無法完成如何將它應用到我的VBA程序上的飛躍。

更改過期密碼而不使用“密碼已過期”對話框

如何通過C#首次登錄時更改SQL Server登錄帳戶密碼?

http://www.utteraccess.com/forum/Users-Change-SQL-Pass-t2006545.html&pid=2378998

我當前的連接字符串看起來像這樣

Dim cn As ADODB.Connection
Dim strCS As String

Set cn = New ADODB.Connection

strCS = "Provider=SQLOLEDB;" _
         & "Server=IP ADDRESS GOES HERE;" _
         & "Database=" + DBselect.Value + ";" _
         & "User ID=" + Uname.Value + ";" _
         & "Password=" + pWord.Value + ";" _
         & "MARS Connection=True;"

cn.ConnectionString = strCS

cn.Open

只要用戶的密碼未過期,此連接字符串就可以正常工作。

如何修改此連接字符串以更改用戶密碼? 任何幫助真的很感激!

謝謝!

從第一個鏈接看起來,這將起作用:

1)在SQL Server中創建一個名為spChangeLogin的新存儲過程。 它應該如下所示:

CREATE procedure [dbo].[spChangeLogin]
    @UserName VarChar (50),
    @OldPass VarChar (20),
          @NewPass VarChar (20)
AS

BEGIN

ALTER LOGIN @UserName WITH 
     PASSWORD = @NewPass 
     OLD_PASSWORD = @OldPass

END
;
GO

2)將其添加到Access DB:

    Dim cnComments As New ADODB.Connection
    Dim strCS As String
    Dim P As String
    Dim Rsx As ADODB.Recordset

'Set up the connection string
strCS = "Provider=SQLOLEDB;" _
         & "Server=IP ADDRESS GOES HERE;" _
         & "Database=" + DBselect.Value + ";" _
         & "User ID=" + Uname.Value + ";" _
         & "Password=" + pWord.Value + ";" _
         & "MARS Connection=True;"

        cnComments.Open strCS 

    P = "spChangeLogin '" & Me.UserName & "', '" & Me.OldPass & "', '" & Me.NewPass & "'"
    Set Rsx = cnComments.Execute(P)

3)在表格上放置3個字段; UserName,OldPass和NewPass

需要ALTER ANY LOGIN權限


注意:


我的連接字符串如下所示:

strConn = "PROVIDER=SQLOLEDB;DATA SOURCE=MyServerName;INITIAL CATALOG=MyDatabaseName;UID=GlobalUserID;PWD=GlobalPassword;"

您可能需要相應調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM