This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Using Microsoft SQL Server 2005 database with Enterprise Console

I am trying to use an existing Microsoft SQL Server 2005  with a new installation of Enterprise Console 4.7 by following the instructions here: http://www.sophos.com/support/knowledgebase/article/110280.html The link refers to the Advanced Startup Guide and inplies that the Enterprise Console installer can create a database, but I didn't see instructions for this and it seems that it can only install an SQL Express 2008 Server. Thus, I am following the script instructions.

I have extracted the DB scripts from the MSI and am reviewing them before executing on our production database member server (let's call it "ITDB"). The instructions in the aforementioned link will create a new instance on the database server called "sophos." I want to use the default instance (which I believe Microsoft refers to as "MSSQLSERVER") instead and create a database called SOPHOS47. What command should I execute?

InstallDB.bat .\ ITDB SOPHOS47

or

InstallDB.bat .\MSSQLSERVER ITDB SOPHOS47

When I initially created an empty database manually in Microsoft SQL Server Management Studio, the following connection string in the registry failed:

Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=SOPHOS47;Data Source=ITDB \MSSQLServer;

Step: Creating a database connection

Error: std::runtime_error

Data: [DBNETLIB][ConnectionOpen (ParseConnectParams()).]Invalid connection.

while this one seems to have gotten further and just couldn't find the stored procedure:

Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=SOPHOS47;Data Source=ITDB \;

Step: Creating a database connection

Error: std::runtime_error

Data: Could not find stored procedure 'dbo.GetInterfaceVersion'.

:14161


This thread was automatically locked due to age.
Parents
  • Hi,

    Running:
    \db\installDB.bat /?

    shows:

    Usage: InstallDB [SERVER\INSTANCE] [DOMAIN] [DATABASE] [LOGFILE]

    So for a "no-named/default" instance you would run:

    installDB.bat  servername servername SOPHOS47 log.txt

    The first "servername" doesn't need an instance to reference the SQL instance.
    The second "servername" defines the context of the windows security group "Sophos DB Admins" that should be created.

    You may want to check that you have a "Sophos DB Admins" group.  Typically if the database role is installed on a member server or workgroup machine this group will be a local security group.  So the second parameter will be the name of the sql machine.  If you were to create the group as a domain group (as it would have to be on a DC for example), you would specify the second "servername" to be the short version of the domainname.

    The idea being that, the account the Sophos Management service impersonates to access the database, as stored under:
    HKEY_LOCAL_MACHINE\SOFTWARE\Sophos\EE\Management Tools\DatabaseUser \
    on the management server machine is made a member of "Sophos DB Admins" so it has access to the stored procedures in the SOPHOS47 database.

    You can always verify the SOPHOS47 database has been created by running:

    SQLCMD -E -S servername -Q "select name from dbo.sysdatabases where name='sophos47'" 


    This should return 1 row with the value SOPHOS47.
     

    I hope this helps.  

    Regards,

    Jak

     

    :14185
Reply
  • Hi,

    Running:
    \db\installDB.bat /?

    shows:

    Usage: InstallDB [SERVER\INSTANCE] [DOMAIN] [DATABASE] [LOGFILE]

    So for a "no-named/default" instance you would run:

    installDB.bat  servername servername SOPHOS47 log.txt

    The first "servername" doesn't need an instance to reference the SQL instance.
    The second "servername" defines the context of the windows security group "Sophos DB Admins" that should be created.

    You may want to check that you have a "Sophos DB Admins" group.  Typically if the database role is installed on a member server or workgroup machine this group will be a local security group.  So the second parameter will be the name of the sql machine.  If you were to create the group as a domain group (as it would have to be on a DC for example), you would specify the second "servername" to be the short version of the domainname.

    The idea being that, the account the Sophos Management service impersonates to access the database, as stored under:
    HKEY_LOCAL_MACHINE\SOFTWARE\Sophos\EE\Management Tools\DatabaseUser \
    on the management server machine is made a member of "Sophos DB Admins" so it has access to the stored procedures in the SOPHOS47 database.

    You can always verify the SOPHOS47 database has been created by running:

    SQLCMD -E -S servername -Q "select name from dbo.sysdatabases where name='sophos47'" 


    This should return 1 row with the value SOPHOS47.
     

    I hope this helps.  

    Regards,

    Jak

     

    :14185
Children
No Data