2014-12-15 7 views
0

Я создал загрузочный проект с WiX 3.8. В качестве обязательного условия установки SQL Server Express 2012 установлено значение «SQLExpress» как имя нового экземпляра SQL Server. Затем в MSI я хочу создать новый вход пользователя SQL. Я пробовал это с помощью User-element, но, похоже, он не работает. Когда я смотрю на логины в инструменте управления SQL Server, я не вижу своего нового пользователя, но журнал из моего MSI говорит мне, что он был создан.Как создать логин для экземпляра SQL Server?

Есть ли что-то не так с моей версией User-элемента или у меня есть другой способ?

<Component Id ="CreateUserAccount" 
      Guid="AEE91491-99FA-40A9-AB47-1E9FC2DDEF2A" 
      Directory="TARGETDIR"> 
    <util:User Id ="SQLUser" 
       Name="[DBUSER_PROP]" 
       Password="[DBPW_PROP]" 
       UpdateIfExists="no" 
       CreateUser="yes" 
       PasswordNeverExpires="yes" 
       PasswordExpired="no" 
       RemoveOnUninstall="no" 
       Domain="[ComputerName]"> 
    </util:User> 
</Component> 
+0

Где вы создаете пароль уровня SQL? Это выглядит как пользователь Windows для меня - если вы не создаете логин на уровне db или не добавляете его в группу с правами входа, это абсолютно не относится к sql вообще. – TomTom

+0

Похоже, вы указываете учетную запись компьютера с этим Domain = "[ComputerName]". Если у вас нет этого пользователя на вашем компьютере, это не сработает. Кроме того, указание GUID (sid) может быть причиной того, что оно не добавляется, если оно уже выполнено. Наконец, вы пытались обновить папку безопасности? – WickedFan

ответ

0

С помощью Phill Hogland из Windows-installer-xml-wix-toolset я нашел решение. Это зависит от языка, используемого на ПК. В моем случае это немецкий, а это значит, что группы Пользователи не могут быть найдены под именем «Пользователи», но «Benutzer».

Вот правильный код:

<util:Group Id="Users" 
      Name ="Benutzer" 
      Domain="[ComputerName]" /> 
<Component Id ="CreateUserAccount" 
      Guid="AEE91491-99FA-40A9-AB47-1E9FC2DDEF2A" 
      Directory="TARGETDIR"> 
    <util:User Id ="SQLUser" 
       Name="[DBUSER_PROP]" 
       Password="[DBPW_PROP]" 
       UpdateIfExists="no" 
       CreateUser="yes" 
       PasswordNeverExpires="yes" 
       PasswordExpired="no" 
       RemoveOnUninstall="no"> 
     <util:GroupRef Id ="Users" /> 
    </util:User> 
</Component> 

Далее Вы можете заменить жёстко прописанные имя на расслоении-переменной. Тогда вы будете независимы от языка ОС.

Смежные вопросы