Microsoft? OLE DB Provider for Jet 3.51 OLE DB:
ConnectionString="Provider=Microsoft.Jet.OLEDB.3.51;" & _
"Persist Security Info=False;" & _
"Data Source=C:/Program Files/" & _
"Microsoft Analysis Services/Samples/FoodMart 2000.mdb"
Microsoft OLE DB Provider for Jet 4.0:
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=C:/Program Files/" & _
"Microsoft Analysis Services/Samples/FoodMart 2000.mdb;" & _
"JET OLEDB:SFP=True;"
Microsoft OLE DB Provider for ODBC (Microsoft Access):
ConnectionString="Provider=MSDASQL.1;" & _
"Persist Security Info=False;" & _
"Data Source=FoodMart 2000;" & _
"Connect Timeout=15"
Microsoft SQL Server?:
ConnectionString = "Provider=SQLOLEDB.1;" & _
"Persist Security Info=False;" & _
"User ID=sa;" & _
"PassWord=*****"&_
"Initial Catalog=FoodMart 2000;" & _
"Data Source={SQL Server};" & _
"Connect Timeout=15"
ADO用了这么久,每次用向导创建ADO的数据库连接字符串时总会有产生一个Persist Security Info属性,平时没太注意,因为设置为True或False时对数据库连接没有任何影响。不过心理还是不爽,今天有时间查询了一下资料,总算搞清楚了它的作用。
Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息",
True表示保存,False表示不保存
ADO缺省为True
(ADO.net缺省为False,未测试,根据参考资料上说的)
具体可以通过ADO的Connect对象的ConnectString属性进行验证,如下所示(以下在Delphi7中测试通过):
----------------------------------------------------------------------------------------------------------
数据库连接前
ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22;Persist Security Info=false"
数据库连接成功后
ConnectString="Provider=MSDAORA.1;User ID=yzs;Data Source=ydgl22"
----------------------------------------------------------------------------------------------------------
数据库连接前
ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22;Persist Security Info=true"
数据库连接成功后
ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=dlyx;Data Source=ydgl22"
----------------------------------------------------------------------------------------------------------
总体来说,如果数据库连接成功后不再需要连接的密码,出于安全性考虑,还是建议将Persist Security Info设为false,以防止后门程序取得数据库连接的密码(windows2003在sp1前就发生过这个问题)。
以下是摘自微软的ADO.net资料