分享
 
 
 

SQL Server身份验证管理子程序

王朝mssql·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

Option Compare Database

Public appAccess As Access.Application

Sub CallSQLDMOSQLServerLogin()

Dim srvname As String

Dim suid As String

Dim pwd As String

' 设置 SQL Server 的登录参数

srvname = "(local)"

'suid = "sa"

'pwd = ""

' 调用 SQL Server 登录过程

SQLDMOSQLServerLogin srvname, suid, pwd

End Sub

Sub SQLDMOSQLServerLogin(srvname As String, suid As String, pwd As String)

Dim srv1 As SQLDMO.SQLServer

' 新建一个服务器实例

Set srv1 = New SQLDMO.SQLServer

' 调用 SQL Server 登录连接方法

srv1.Connect srvname, suid, pwd

' 断开连接

srv1.Disconnect

Set srv1 = Nothing

End Sub

Sub CallSQLDMOWindowsLogin()

Dim srvname As String

' 设置 Windows 登录参数

srvname = "(local)"

SQLDMOWindowsLogin srvname

End Sub

Sub SQLDMOWindowsLogin(srvname As String)

Dim srv1 As SQLDMO.SQLServer

' 新建一个服务器实例

Set srv1 = New SQLDMO.SQLServer

' 在调用前,设置 LoginSecure 属性为 True

' 使用服务名进行连接

srv1.LoginSecure = True

srv1.Connect srvname

' 断开连接

srv1.Disconnect

Set srv1 = Nothing

End Sub

Sub CallChangeServerAuthenticationMode()

Dim constAuth As Byte

' 设置 constAuth 参数为:

' SQLDMOSecurity_Integrated 为 Windows Authentication 模式

' SQLDMOSecurity_Mixed 为 Mixed Authentication 模式

' 设置 constAuth 的默认值

constAuth = SQLDMOSecurity_Mixed

' 调用改变 SQL Server 身份认证模式的方法

ChangeServerAuthenticationMode constAuth

End Sub

Sub ChangeServerAuthenticationMode(constAuth As Byte)

Dim srv1 As SQLDMO.SQLServer

' 指定哪个服务器,默认为 Local (本地服务器)

srvname = "(local)"

' 使用集成安全(Windows)方式新建一个 SQL Server 对象并进行连接

Set srv1 = New SQLDMO.SQLServer

srv1.LoginSecure = True

srv1.Connect srvname

' 设置 SecurityMode 属性为 Windows 或混合身份验证模式

srv1.IntegratedSecurity.SecurityMode = constAuth

srv1.Disconnect

' 调用 Stop 方法停止服务器,直到服务器完全停止

srv1.Stop

Do Until srv1.Status = SQLDMOSvc_Stopped

Loop

' 重新以混合模式启动服务器

srv1.Start True, srvname

' 断开连接

srv1.Disconnect

Set srv1 = Nothing

End Sub

Sub ToWindowsAuthentication()

Dim srv1 As SQLDMO.SQLServer

' 指定哪个服务器,默认为 Local (本地服务器)

srvname = "(local)"

' 使用集成安全(Windows)方式新建一个 SQL Server 对象并进行连接

Set srv1 = New SQLDMO.SQLServer

srv1.LoginSecure = True

srv1.Connect srvname

' 设置 SecurityMode 属性为 Windows 身份验证模式

srv1.IntegratedSecurity.SecurityMode = SQLDMOSecurity_Integrated

srv1.Disconnect

' 调用 Stop 方法停止服务器,直到服务器完全停止

srv1.Stop

Do Until srv1.Status = SQLDMOSvc_Stopped

Loop

' 重新以混合模式启动服务器

srv1.Start True, srvname

' 断开连接

srv1.Disconnect

Set srv1 = Nothing

End Sub

Sub WindowsToMixedAuthentication()

Dim srv1 As SQLDMO.SQLServer

' 指定哪个服务器,默认为 Local (本地服务器)

srvname = "(local)"

' 使用集成安全(Windows)方式新建一个 SQL Server 对象并进行连接

Set srv1 = New SQLDMO.SQLServer

srv1.LoginSecure = True

srv1.Connect srvname

' 设置 SecurityMode 属性混合身份验证模式

srv1.IntegratedSecurity.SecurityMode = SQLDMOSecurity_Mixed

srv1.Disconnect

' 调用 Stop 方法停止服务器,直到服务器完全停止

srv1.Stop

Do Until srv1.Status = SQLDMOSvc_Stopped

Loop

' 重新以混合模式启动服务器

srv1.Start True, srvname

' 断开连接

srv1.Disconnect

Set srv1 = Nothing

End Sub

Sub CallOpenADPWindowsOrSQLServer()

Dim srvname As String

Dim dbname As String

Dim prpath As String

Dim prname As String

Dim suid As String

Dim pwd As String

Dim bolWindowsLogin As Boolean

' 设置打开 ADP 程序的参数

srvname = "(local)"

dbname = "NorthwindCS" ' ADP 连接的数据库

prpath = "C:\Documents and Settings\Administrator\My Documents\" ' ADP 文件所在的磁盘位置

prname = "NorthwindCS" ' ADP 文件名

suid = "msdn5"

pwd = "password"

' 该参数用于控制当前用户使用 Windows 登录

' 代替 SQL Server 的 suid 和 pwd

bolWindowsLogin = False

' 使用 Windows 或 SQL Server 登录调用打开名为 prname ADP 的子程序

OpenADPWindowsOrSQLServer srvname, dbname, prpath, prname, suid, pwd, bolWindowsLogin

End Sub

Sub OpenADPWindowsOrSQLServer(srvname As String, dbname As String, _

prpath As String, prname As String, _

suid As String, pwd As String, bolWindowsLogin As Boolean)

Dim bolLeaveOpen As Boolean

Dim strPrFilePath As String

Dim sConnectionString As String

' 是否保持现有打开的程序?

If MsgBox("在该过程中是否关闭打开的 ADP?", vbYesNo) = vbYes Then

bolLeaveOpen = True

End If

' 新建 Access 会话实例 (使用 .9 : Access 2000, .10 : Access 2002)

Set appAccess = CreateObject("Access.Application.9")

' 使用登录名和口令打开 ADP 并使其可视

strPrFilePath = prpath & prname

appAccess.OpenAccessProject strPrFilePath

appAccess.Visible = True

' 指定 ADP 使用的新的 Windwos 或 SQL Server 登录方式

If bolWindowsLogin Then

appAccess.CurrentProject.OpenConnection _

"PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;" & _

"PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=" & _

dbname & ";DATA SOURCE=" & srvname

Else

sConnectionString = "PROVIDER=SQLOLEDB.1;INITIAL CATALOG=" & _

dbname & ";DATA SOURCE=" & srvname

appAccess.CurrentProject.OpenConnection _

sConnectionString, _

suid, pwd

End If

' 按上面提出的要求关闭 Access 会话实例

If bolLeaveOpen = False Then

appAccess.CloseCurrentDatabase

Set appAccess = Nothing

End If

End Sub

Sub CallLoginDemo()

Dim srvname As String

Dim suid As String

Dim pwd As String

' 设置登录 SQL Server 的参数

srvname = "(local)"

suid = "sa"

pwd = ""

' 调用 SQL Server 登录子程序

LoginDemo srvname, suid, pwd

End Sub

Sub LoginDemo(srvname As String, suid As String, pwd As String)

Dim srv1 As SQLDMO.SQLServer

Dim lgn1 As SQLDMO.Login

' 新建一服务器实例

Set srv1 = New SQLDMO.SQLServer

' 以 SQL Server 方式连接 SQL Server

srv1.Connect srvname, suid, pwd

' 新建登录对象

Set lgn1 = New SQLDMO.Login

' 添加默认 SQL Server 登录 msdn6

lgn1.Name = "UserX"

lgn1.Database = "NorthwindCS"

lgn1.SetPassword "", "password"

srv1.Logins.Add lgn1

'重新新建登录对象

Set lgn1 = New SQLDMO.Login

' 添加基于 Windows 组 SQL_users 的登录对象

lgn1.Name = "MYDESK\UserSQL"

lgn1.Database = "NorthwindCS"

lgn1.Type = SQLDMOLogin_NTGroup

srv1.Logins.Add lgn1

' 在添加登录后,列出登录列表

Debug.Print "添加 2 个新登录后的登录列表:"

For Each lgn1 In srv1.Logins

Debug.Print DecodeLoginType(lgn1.Type), lgn1.Name

Next lgn1

' 删除刚新建的登录

srv1.Logins.Remove "MYDESK\UserSQL"

srv1.Logins.Remove "UserX"

' 列出登录列表

Debug.Print vbCr & "删除 2 个新登录后的登录列表:"

For Each lgn1 In srv1.Logins

Debug.Print DecodeLoginType(lgn1.Type), lgn1.Name

Next lgn1

' 断开连接

srv1.Disconnect

Set srv1 = Nothing

End Sub

Function DecodeLoginType(lgn_type As Byte) As String

Select Case lgn_type

Case 0

DecodeLoginType = "SQLDMOLogin_NTUser"

Case 1

DecodeLoginType = "SQLDMOLogin_NTGroup"

Case 2

DecodeLoginType = "SQLDMOLogin_Standard"

Case Else

DecodeLoginType = "超出范围"

End Select

End Function

Sub MakeLoginWithDatareaderUser()

Dim srv1 As SQLDMO.SQLServer

Dim lgn1 As SQLDMO.Login

Dim usr1 As SQLDMO.User

Dim srvname As String

Dim suid As String

Dim pwd As String

Dim dbname As String

Dim prpath As String

Dim prname As String

Dim bolWindowsLogin As Boolean

' 设置参数

srvname = "(local)"

suid = "sa"

pwd = ""

dbname = "NorthwindCS"

' 新建服务器实例

Set srv1 = New SQLDMO.SQLServer

' 以 SQL Server 登录方式进行连接

srv1.Connect srvname, suid, pwd

' 新建一个 SQL Server 登录对象 UserX

suid = "UserX"

Set lgn1 = New SQLDMO.Login

lgn1.Name = suid

lgn1.Database = dbname

lgn1.SetPassword "", pwd

srv1.Logins.Add lgn1

' 在数据库 NorthwindCS 上新建一个用户对象 UserX,并与登录对象 UserX 相关联

Set usr1 = New SQLDMO.User

usr1.Name = suid

usr1.Login = lgn1.Name

srv1.Databases(dbname).Users.Add usr1

srv1.Databases(dbname).DatabaseRol

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有