Search
Register
Login
Products
What's New
Demos
Free Online Evaluation
Platform Support Matrix
Compare Editions
Compare SplendidCRM vs SugarCRM
Compare CRM Vendor Pricing
Editions
SplendidCRM Ultimate
SplendidCRM Enterprise
SplendidCRM Professional
SplendidCRM Community
Open Source
Download Community Edition
GNU Affero General Public License
Forums
Documentation
Company
Management Team
Press Releases
May 19, 2016
November 5, 2015
May 28, 2015
November 13, 2013
April 6, 2015
April 4, 2013
February 11, 2013
June 21, 2012
May 15, 2012
December 16, 2011
December 15, 2010
December 8, 2010
April 14, 2010
October 20, 2009
December 16, 2008
December 1, 2008
October 8, 2008
June 2, 2008
April 27, 2007
March 16, 2007
August 15, 2006
January 24, 2006
December 07, 2005
News Archive
Contact Us
Blog
Store
Forums
Forum
Mainstream Foru...
General Discuss...
Multi-tenant
Previous
Next
9/17/2020 1:15 PM
Administrator Account
Joined: 12/23/2005
Posts: 19
Re: Multi-tenant
While your approach will keep things simple, it is usually best to obfuscate so as to make it a little harder for hackers to understand your architecture. Also, by having separate connection strings, it allows us to use separate SQL user logins as an additional layer of security. Our Professional and Enterprise products allow the upload of a report with a custom SQL query, we wanted to make sure that each database had a separate login to prevent cross database hacking.
9/17/2020 2:45 PM
Nicke
Joined: 6/25/2020
Posts: 10
Re: Multi-tenant
Thanks for the reply. I understand the concern about hacking.
With our SurPaaS archetecture, we use the subdomain name to look up in tables we maintain that point to the proper database, which may or may not = the actual name of the DB.
For our SaaS customers, we use wildcard subdomain so that the users have a simple, contextual url by which to access their application.
https://tenantname/company.com is easy to remember. IT is true, if the tenant name is known, others can access the logon. That is why we set the default password to "must change"
What we are doing now with your method:
In the Spendid_hosting_sites view, we are setting "Connection_String" Initial Catalog with "tenantname", same as the end-user url subdomain. This works fine.
I would like to just skip the step of creating an IIS host for each tenant, and maintain another table.
Accepting all the disclaimers, I would like to add another factory that declares the subdomain as the database name as an option. I am looking for the best way to do this without changing too much SplendidCRM code.
12/14/2020 10:13 AM
Nicke
Joined: 6/25/2020
Posts: 10
Re: Multi-tenant
Ok, we have SplendidCRM setup working using the HOSTINGDATABASE.
We are now trying to move to Azure SQL, which seems to work fine with single tenant. I am running into a problem with mutitenant. For some reason, the app is not looking up the sites (SPENDID_HOSTING_SITES), and if so, is not pointing to the correct tenant database.
I know Azure SQL does not support [use] to switch between databases in a single session and this could be the problem.
Can you provide guidance on using Azure SQL with HOSTINGDATABASE config?
12/27/2020 3:18 AM
Administrator Account
Joined: 12/23/2005
Posts: 19
Re: Multi-tenant
We don't use the hosting database solution with our Azure system. Instead, we have created SplendidCRM Ultimate Edition to dynamically create new VM and SQL instances for each customer.
I'm not sure why you would have a problem connecting to 2 separate databases inside an Azure VM. I would expect the problems you are having to do with the fierwalls being used by SQL Azure.
.NET System.Data.SqlClient object should be able to connect to any number of separate databases. I would suggest that you use PowerShell to test connections to the various databases.
Page 3 of 3
Previous
1
2
3
Previous
Next
Forum
Mainstream Foru...
General Discuss...
Multi-tenant