• Web.Config文件中SQLServerExpress数据库连接配置解释(转)


    转自:http://www.cnblogs.com/aodailiheben/archive/2008/08/06/1262227.html

    对于SQLServerExpress数据库连接配置,以前看到过几次,都是匆匆扫一眼,今天上午在一开源软件中又看到了它,感觉有必要对它有一个清楚的认识,示例如下:
    <add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Integrated Security=True;AttachDBFilename=|DataDirectory|TimeTracker.mdf;User Instance=true" />
    SqlConnectionStringBuilder实例化时,要用到connectionString,如:SqlConnectionStringBuild builder = new SqlConnectionStringBuild(connectionString)。

       一、Data Source
    SqlConnectionStringBuilder的DataSource属性,对应connectionString中的Data Source,“Data Source”可以由下列字符串代替:“server”,“address”,“addr”和“network address”。
    Data Source=.\SQLExpress也可以写成这样Data Source=(local)\SQLExpress。

       二、Integrated Security
    SqlConnectionStringBuilder的IntegratedSecurity属性,对应connectionString中的Integrated Security,“Integrated Security”可以写成“trusted_connection”,为true时,使用当前的 Windows 帐户凭据进行身份验证,为false时,需要在连接中指定用户 ID 和密码。

       三、AttachDBFilename
    SqlConnectionStringBuilder的AttachDBFilename属性,对应connectionString中的AttachDBFilename,“AttachDBFilename”可以写成“extended properties”,“initial file name”。AttachDbFileName属性指定连接打开的时候动态附加到服务器上的数据库文件的位置。这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的App_Data目录所代替。
    有一篇文章,专门解释DataDirectory是什么。

       四、User Instance
    SqlConnectionStringBuilder的UserInstance属性,对应connectionString中的User Instance ,该值指示是否将连接从默认的 SQL Server Express 实例重定向到在调用方帐户之下运行并且在运行时启动的实例。UserInstance=true,在这种情况下,SQLServerExpress为了把数据库附加到新的实例,建立一个新的进程,在打开连接的用户身份下运行。在ASP.NET应用程序中,这个用户是本地的ASPNET帐号或默认的NetworkService,这依赖于操作系统。为了安全地附加非系统管理员帐号(例如ASP.NET帐号)提供的数据库文件,建立一个独立的SQLServer用户实例是必要的。


    附录:

    DataDirectory是什么?

    asp.net  2.0有一个特殊目录app_data,通常Sql  server  2005  express数据文件就放在这个目录,相应的数据库连接串就是:
    connectionString="……  data  source=.\SQLEXPRESS;Integrated  Security=SSPI;AttachDBFilename=|DataDirectory|data.mdf;User  Instance=true"
    这里有一个DataDirectory的宏,它表示什么意义呢?

    DataDirectory是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory  简化了项目的共享和应用程序的部署。例如,无需使用以下连接字符串: 
    "Data  Source=  c:\program  files\MyApp\app_data\Mydb.mdf" 
    通过使用|DataDirectory|(包含在如下所示的竖线中),即可具有以下连接字符串: 
    "Data  Source  =  |DataDirectory|\Mydb.mdf" 。

    不仅仅是Sql server 2005 express中使用,也可以在其它的文件数据库中使用,例如Sqllite数据库文件的连接字符串:

    <add  name="DefaultDB" 
    connectionString="DriverClass=NHibernate.Driver.SQLite20Driver;Dialect=NHibernate.Dialect.SQLiteDialect;Data  Source=|DataDirectory|\data.db3" />

    附:

    config中常见词解释:(我在网上搜到 总结到一起 方便使用)

    Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息",
     True表示保存,False表示不保存
    ADO缺省为True
    (ADO.net缺省为False,未测试,根据参考资料上说的)

    Integrated Security :设置为 True 的时候,前面的 UserID, PW 是不起作用的,只有设置为 False 的时候,才按照 UserID, PW 来连接。
    Integrated Security 可以设置为: True, false, yes, no ,这四个的意思很明白了,还可以设置为:sspi ,相当于 True,建议用这个代替 True

    User Instance的新特性,简单地说,允许当前用户不是管理员身份情况下也能使用它。 默认true; 

    web.config配置文件详解

  • 相关阅读:
    laravel migrate 指定执行部分 migration
    Laravel attribute casting 导致的 Indirect modification of overloaded property
    python中列表,元组的乘法
    python中简化的验证码功能
    Day4作业:蛋疼CRM系统
    python中pop(),popitem()的整理
    新手pyhoner的指定内容读取和写入的思路
    Python基础之文件操作
    Python基础之内置函数(一)
    Python基础之set集合与函数
  • 原文地址:https://www.cnblogs.com/huazaizai/p/1883112.html
Copyright © 2020-2023  润新知