【发布时间】:2016-09-15 15:54:58
【问题描述】:
我正在尝试使用 WIX 安装数据库。
我已经在我的 Windows7(32 位)上安装了 SQL Server 2008 express。在此安装中,TCP/IP 已启用,SQL Server 服务正在运行。
我正在为 SQL Server 使用 SQL Server 和 Windows 身份验证。我在代码中都尝试了 - 我在组件中添加了一个用户。
代码很基础:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension">
<Product Id="*" Name="NewDatabaseInstaller" Language="1033"
Version="1.0.0.0" Manufacturer="My Company"
UpgradeCode="17ef693b-3ab5-4788-a6b5-70eeabc13497">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />
<Feature Id="ProductFeature" Title="NewDatabaseInstaller" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="NewDatabaseInstaller" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="cmpSqlDatabase" Guid="{F950605D-AA59-43E6-AB19-9452F6BEC649}" KeyPath="yes">
<sql:SqlDatabase Id="sqlDatabase_MyDatabase" Server="localhost"
Instance="MSSQLSERVER" Database="MyDatabase"
CreateOnInstall="yes" DropOnUninstall="yes"
ContinueOnError="no" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
我通过在管理工作室中点击此查询获得了实例名称:
SELECT @@servicename
但是,我得到一个错误:
CreateDatabase:错误 0x80004005:无法创建数据库:“MyDatabase”,错误:未知错误
错误 26201。错误 -2147467259:未能创建 SQL 数据库:MyDatabase,错误详细信息:未知错误。
MSI (s) (FC!74) [17:43:27:786]:产品:测试 -- 错误 26201。错误 -2147467259:未能创建 SQL 数据库:MyDatabase,错误详细信息:未知错误。CustomAction CreateDatabase 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确)
操作于 17:43:27 结束:InstallFinalize。返回值 3。
我错过了什么吗?
谢谢!
【问题讨论】:
-
错误 0x80004005 是“拒绝访问”。验证运行安装的帐户是否有足够的权限在 SQL Server 中创建数据库。
-
嗨@YanSklyarenko,感谢您的回答。我添加了
<util:User Id='sa' Name='sa' Password='password' />并与用户一起更新了 sql:SqlDatabase。我尝试使用用户 sa 在 localhost 上登录管理工作室。我可以登录并运行查询,但仍然有错误。用户(我的本地用户和 sa 用户具有 sysadmin 角色) -
有什么想法吗?我使用了 SQL Profiler,但我没有收到任何数据...我使用了 sysadmin 的用户,为什么访问被拒绝?
-
不,不知道,很遗憾
-
感谢您的尝试!如果我发现了什么,我会更新帖子。
标签: sql-server database wix