首页 > 代码库 > iis上部署本地数据库LocalDB的方法

iis上部署本地数据库LocalDB的方法

1. iis应用程序池的标识设置为"ApplicationPoolIdentify"(比较安全)

2. 不要将数据库物理文件保存在网站的物理路径内,因为iis应用程序池的标识为ApplicationPoolIdentify,此时网站文件夹的安全权限中对应的用户(应用程序池名称)的权限会被设置为只允许读取,为了安全起见,保持此默认设置,在其它位置创建文件夹用于保存数据库(比如:D:\LocalDB\TestWebApp)

3. 右键单击保存数据库文件的文件夹(比如:TestWebApp)----属性----安全----编辑----添加----输入名称:IIS APPPOOl\应用程序池名称----确定----(此时在用户名列表中将只显示应用程序池名称作为用户名)----勾选允许权限,"修改","读取和执行","列出文件夹内容","读取","写入"----确定----确定----(完成对数据库文件夹的权限设置)

4. 不要使用默认实例,自己创建一个共享实例,并设置相应的权限,步骤如下(以LocalDB 2012 为例)

4.1 打开cmd,按顺序分别执行以下三条命令创建并启用共享实例 (SqlLocalDB.exe 一般在"C:\Program Files\Microsoft SQL Server\110\Tools\Binn"目录内)

SqlLocalDB.exe create "InstanceName"
SqlLocalDB.exe share "InstanceName" "shareInstanceName"
SqlLocalDB.exe start "InstanceName"

4.2 打开 SQL Server Managerment Studio 使用 Windows身份验证 连接 (LocalDb)\.\shareInstanceName (注意共享实例的数据源名称格式比普通实例中间多了个点)

4.3 选择"安全性"----"登录名"----右键------"新建登录名",在"常规"选项卡中的使用 IIS APPPOOl\应用程序池名称 作为登录名,选择 "Windows身份验证",在"服务器角色"选项卡中勾选"public"和"sysadmin",然后以相同的方法再新建一个登录名:NT AUTHORITY\SYSTEM

5. 修改项目中Web.config中的连接字符串,

    将 "Data Source" 设置为 "(LocalDb)\.\shareInstanceName",

    将 "AttachDbFilename" 设置为 "D:\LocalDB\TestWebApp\TestWebApp.mdf"

 

其它注意事项:

*如果重启系统,记得重新启用自己创建的数据库实例

SqlLocalDB.exe create "InstanceName"

 

iis上部署本地数据库LocalDB的方法