Would my environment require a paid SQL Server license? [closed] - sql-server

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I've written a plugin for a game that connects to a PHP page and sends it information from the game. The PHP page takes this information, connects to a SQL Server 2005 instance, then inserts the information given into a variety of tables.
I am using Apache (WampServer) to host the PHP page and SQL Server 2005 Express for hosting the database server. This setup is 'okay' as far as development goes, but I wish to release this plugin to other players. Their version of the plugin would be identical to mine in that it would connect to a remote PHP page to either add data to the database or query information from the database.
Since 'clients' are not directly hitting the database, would SQL Server 2005 require a paid license of some type for me to 'legally' use it in this way? What is the standard definition of 'production server?'
Note: I am not making any money from this plugin or PHP page however the game the plugin is written for does require a paid subscription. I am not the developer or in any way affiliated with the game however (other than a paid subscription myself).

SqlExpress is free no matter what the deployment, you just have to accept the limitations
Single CPU
1GB RAM Max Usage
4GB Database size limit (not including logs)
Based on your description I think that the SQLExpress would work fine for your application.
Here's a reference from MS http://www.microsoft.com/Sqlserver/2005/en/us/compare-features.aspx

Express is free and does not require a license fee
If you upgrade to a regular (Standard, Enterprise etc) SQL Server version then typically you get a per CPU license for a web server

SQL Server typically requires a license in your scenario, which is multiplexing.
If you are redistributing Express, meaning sending it to people that install it on their machines to use your plugin, yuo need to register (http://www.microsoft.com/sqlserver/2005/en/us/express-redistribute.aspx).
If you have Express on some server that people hit from a web page, you are OK, though you might run into performance issues with the 1GB ram limit.

Related

Database and hosting with ASP.NET MVC application [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I started to work on an ASP.NET MVC5 application but I still not decided where I will host everything and what type of database I will use. The first option I thought was shared or vps hosting (like Godaddy) that includes traditionnal MSSQL and MySQL. The second option is Azure Websites which seems more scalable and adapted. However, on the short term, I fear this option is more expansive.
First question : Is there any other option I didn't see ?
Second question : SQL Azure and SQL Server are they exactly the same thing ? Can I still use the Entity Framework the same way ?
Third question : Do you have any suggestions... pros and cons ?
Thank you.
I fear this option is more expansive.
It is not exactly right. AzureWebsites offer in 3 modes - Free/Shared/Standard. Based on the mode you run, there will be pricing. If your application got limited visitors you can run on Free mode, which is least expensive.
First question : Is there any other option I didn't see ?
Not that I can think of. Your options are - OnPremises, Cloud, Shared Hosting Providers. You are exploring Cloud and Shared hosting providers.
Second question : SQL Azure and SQL Server are they exactly the same
thing ?
SQL Azure is not exactly the same SQL Server. It got its own limitations -
Transact SQL Limitations - http://msdn.microsoft.com/en-us/library/ee336253.aspx
Other Guidelines and Limitations - http://msdn.microsoft.com/en-us/library/ff394102.aspx
This thread showed lot of limitations and associated resources
Can I still use the Entity Framework the same way ?
SQL Azure got EF Compatibility - http://www.windowsazure.com/EN-US/develop/net/how-to-guides/sql-database/
Windows Azure has some Execution Models:
-Web Sites
-Cloud Services
-Virtual Machines
http://www.windowsazure.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/
To use a database you should go with Virtual Machines and install it in there. There's a image of virtual machine that already has Sql server and you don't need to apply your own license, it's in the price you'll pay.
You can also use some features of Windows Azure Storage, such as Table Services or SQL Database (Sql Server for Azure with limitations #ramiramilu said)
if you're just looking at it in terms of the cost of hosting your site, then you may find that traditional hosting may be cheaper.
Windows Azure Websites though provides more than just hosting. You get staging slot, source control integration, monitoring and alerts, redundancy, auto-scaling, etc...

Log in page database [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I am trying to create a log in page for my application. Since there are multiple users, my page will have the ability to store user names and password. I am using VS2012, being that I am new to programming, I am not sure if using Access or SQL Server. If I create the database to store the log in info, when I compile the program how would that affect the user who installs the program. Would the database "go with the program" when compiled?
I can also use Access to store the data, but I have the a similar issue. If the user's computer does not have Access installed on their PC, how would the table be accessed?
This is probably an entry level question, I have done some research on this but have not found much information.
If you store the login information in a Sql Server Database then you need to install the SqlServer on the customer PC and distribute your database file with your application. It is not an easy task to do in a setup project and probably this is a possible motive for Microsoft to develop the LocalDB version of Sql Server that is a little bit more easy to install.
In the case of Access you need to distribute the MDB file (your database) and (if you stay with the 2003 version) nothing else because all the required libraries are distributed together with the NET framework. In case you want to use the ACCDB file format then you need to install on the customer PC the Microsoft Access Database Engine. However in Access you could find problems with 32bit and 64bit version of the OS. It is advisable to use always the x86 as target platform.
There are also alternatives like SQLite and Sql Compact Edition.
In these days, I would use the cloud. Make your program a webapplication and use an SQL database. Then the program would be accessible in any location where there's access to an internet connection. This means that it can be used on Windows, Mac's, Linux, tablets, smartphones and even smart tv's (Not that anyone uses that).
There's good tutorials on how to do this for a webapplication from PHPacademy. See:
http://www.youtube.com/watch?v=9kyQGBABA38&list=PLE134D877783367C7

External Connector Licences for Websites using SQL Server

I've just found something quite strange while talking with a Microsoft Licencing representative and I wanted to run this past the community to see if this is something that anyone is aware of a change.
I was asking a question around licencing SQL Server/ Windows Server which led to me being recommended an External Connector licence for a Website that does not use Windows Users.
I boiled this down to the basic scenario of:
Server 1:
Windows Server 2008 R2, running IIS 7.5, using a custom public facing Website using an home grown authentication mechanism (i.e. not Local Windows Users, or AD users) where the number of users (authenticated or not) is indeterminate.
Server 2:
Windows Server 2008 R2, running SQL Server 2008 R2.
The Website on Server 1 connects to SQL Server on Server 2 using a SQL authenticated login.
The licencing that is required is:
Windows Server Licence for Server 1
Windows Server Licence for Server 2
SQL Server "Per Processor" Licence
AND
An External Connector Licence for Server 2.
This seems preposterous as it triples the cost of the windows licence for Server 2. Also, as far as SQL Server is concerned, there are no multiple Clients connecting, only 1 "device" that then provides a massive "Value-add" on top of just the data from SQL Server.
My question, has anyone come across this before? It seems like this is wrong as the above, I would imagine, is the most common scenario for most .NET software houses that create web sites, and, having worked for a few, I've never heard of this!
I've seen this question:
https://stackoverflow.com/questions/3072044/external-connector-licensing-with-website-hosted-on-windows
However, it's not really got enough information on the scenario etc. and also doesn't quote any proper resources.
I would appreciate it if someone could actually point to a section within a reputable site about this, rather than just a link to the generic "Client licences" page.
Just a few additions to the otherwise excellent previous answer:
each individual license covers 2 cores:
This is wrong. Each core license covers one core, as you may expect. The fact is that the SKU, the product reference you may purchase, is a pack of 2 core licenses. This pack can be divided into 2 single core licenses if you need to when assigning your licenses to your servers. As a side note, I would be glad to know the name of the "brilliant" guy who created this SKU at Microsoft, as it adds a lot of confusion and generates a lot more work to my industry, the Software Asset Management (SAM).
I would go with Microsoft on this since they are the ones that would do the software audit:
This is wrong as well. Microsoft never does software audit on their own. They always delegate this to third parties. As a consequence, the inside knowledge of licensing rules is usually very poor at Microsoft and I strongly advice to ask licensing professionals instead, such as SAM consultants.
Regarding Martin's comment, the Microsoft Licensing people we deal with (an LAR) think differently:
A LAR, or LSP as it is now their new name, is usually a pure reseller and its licensing knowledge is usually very poor also. Their goal is to sell the most, not to make sure their customers are compliant, and optimized even less. I am not surprised they think differently. Again, ask SAM professionals instead.
Best regards,
Gilles
An External Connector License is in place of a Windows Server User/Device CAL:
http://www.microsoft.com/licensing/about-licensing/client-access-license.aspx
http://www.microsoft.com/licensing/about-licensing/product-licensing.aspx
An External Connector is defined as:
"An External Connector (EC) license is an alternative to CALs for each server that external users will access. External users are users who are not employees or onsite contractors. An EC license assigned to a server permits access by any number of external users, as long as that access is for the benefit of the licensee and not the external user. Each physical server that external users access requires only one EC license regardless of the number of instances running. The right to run instances of the server software is licensed separately; the EC, like the CAL, simply permits access. EC licenses, like CALs, are version and functionality specific. They must be the same version or later than the server software being accessed. The decision on whether to acquire CALs or an EC for external users is primarily a financial one."
A Server Processor/Core License allows unlimited connections - whether internal or external (as long as you cover all the cores in your machine). For the SQL Core license (separate from Server : times the number by 1 for Intel, and .75 for certain models of AMD): http://go.microsoft.com/fwlink/?LinkId=230678 (page 7-9).
Server 1: If it is a workload webserver, IIS does not require CAL's for external connectors - IIS is exempted ( http://microsoftlicensereview.com/category/external-connectors/ ). The Windows Server does require User/Device Server CALs (if it is licensed that way) for employees or onsite contractors. For offsite users who authenticate to the server, not only for website related information, if it makes more sense to purchase the external connector license rather than User/Device CALs for these users, then you would want to do that.
Server 2: In addition to similar license as above for this server, the SQL Server would require either: Per Core License (each individual license covers 2 cores, you need as many licenses as the core factor for your machine); OR 1 SQL Server license + User/Device Cals for all users who connect to the website on Site which is pulling SQL data.
This keeps you from doing multiplexing, which is described here:
http://www.microsoft.com/licensing/about-licensing/briefs/multiplexing.aspx
http://go.microsoft.com/fwlink/?LinkId=230678 (page 17).
Here is an article that explains it further (she mentions offsite contractors, which is different than onsite contractors - which would need a User/Device CAL):
http://www.networkworld.com/community/blog/microsoft-cals-and-external-connector-license
So, it would appear that since the user is connecting to the SQL server via the web application on Server 1, and not authenticating to Server 2 (if Server 1 connects to SQL directly with string rather than authentication), it would not seem like the External Connector license is not needed on Server 2 (but I would go with Microsoft on this since they are the ones that would do the software audit).
Hope that helps.

SQL Server developer Edition License and CAL [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I have to test my product with SQL Server database. Based on the search, I know I have to get hold of Developer Edition. I need to know whether for my team of 10 to access the database for testing needs 10 CALs or 10 developer licenses?
I searched enough in the net but couldn't find a straight answer.
My test setup will be like, SQL Server Developer Edition will be installed in a Test QA machine and my team will connect to that machine to test our product with.
Thanks,
ramanr
For SQL Server 2008 Developer, Microsoft's licensing page states:
You must acquire a license for each user you permit to access or use the
software. You may install any number of copies on any number of devices for
access and use by one user to design, develop, test and demonstrate
programs. Only licensed users may access the software.
They also state:
Demonstration. In addition to the licensed user, any person that has
access to your internal network may install and use copies of the software
to demonstrate use of your programs with the software.
ISTR SQL Server 2005 is similar: i.e., one copy per developer.
In addition to Chris J's answer, the licensing also provides:
II) Additional Licensing Requirements and/or Use Rights.
User Testing. Your end users may access the software to perform acceptance tests on your programs.
Microsoft answers:
http://www.microsoft.com/sqlserver/2005/en/us/developer.aspx

Can a Microsoft Access Forms application be switched to work with a SQL back end? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I was asked to provide an estimation to change a relatively small app designed with MS Access to use a SQL database.
First, is this even possible? I never worked enough with Access, so I'd like to know. If it's possible can you please point me to some websites with tutorials regarding this?
Second: if it's possible, is it recommended? Is it a big performance hit? Any specific do/donts that you can and want to share?
Thanks in advance for your help.
SQL Server upsizing is relatively easy to do although thorough testing is required. I'd estimate the effort at 5% to 10% of the initial system development. SQL Server upsizing is recommended in specific circumstances such as greater than 25 to 50 users or 24x7 access or difficulty/impossibility in rekeying data in the event of a corruption.
See my Random Thoughts on SQL Server Upsizing from Microsoft Access Tips page
There is a tool from the SQL Server group SQL Server Migration Assistant for Access (SSMA Access) which is a lot better than the upsizing wizard.
For the specific task of converting a Microsoft Access database to use SQL Server as the back-end data store while keeping the user interface from the Microsoft Access application, Access itself supplies an "Upsizing Wizard" (Tools | Database Utilities | Upsizing Wizard).
This wizard will step you through the process of connecting to an instance of SQL Server, creating an SQL Server database, and moving, to the greatest extent possible, your tables and views (called Queries in Access) to the new database.
The process can be relatively painless, or fraught with difficulty depending on numerous factors including how well you've validated your data in the Access database, whether you've made use of VBA functions in your queries, and whether you've used any query constructs unique to Access.
This tells you how to convert Access to SQL Server:
http://support.microsoft.com/kb/237980
Now, depending on how the application was written (language, etc.), the rest of it may be a quite a bit more work. However, it's really difficult to throw a ballpark on that one because the number of variables in this are large. In any case, it is possible, so that's not an issue.
In terms of performance, if the database is tiny, then Access may actually be faster. If the database is large, you'll gain from SQL server. Aside from that, you can have distributed clients and one data store centrally located, that's a plus.
By the way, if this is written using the .NET framework, it probably just got a lot easier.
This would be fairly easy to do (hopefully). In Access, you can create linked tables that are just links through to tables in other database (like SQL Server), so you could take your existing apps and replace all the Access tables with same-named links to tables in your SQL Server database.
I think doing this could be the opposite of a performance hit, depending on the circumstances. Access is very performant, but only with a small number of concurrent users (say, less than 30). So if the application has a large number of users, you would benefit from switching over to SQL Server. If, however, the SQL Server database is hosted on a different machine, than you lose performance by connecting to a database on a remote server (as opposed to connecting to a local Access database).
I wouldn't recommend doing this, personally.
to upsize or not to upsize - that is the question...(or was for us)
kind of a big deal to step up to sqlserver....we kind of dodged it by going to a WAN replication service from AccessTables.com and stayed with Access....at least for the time being.....the upsizing was just one issue...dealing with a web front end or terminal services was part of it too...

Resources