Monday, March 12, 2012

MSDE licensing rules

Hi All,
Some thoughts about the MSDE licensing rules. It doesn't seem to be as easy
as it looks at first sight. Please tell me if and where I'm wrong.
At the MSDE Homepage at Microsoft they talk about "the free, redistributable
version of SQL Server". But when I read the page about "Appropriate Uses of
MSDE FAQ"
(http://www.microsoft.com/sql/msde/howtobuy/msdeuse.asp)
I'm quite confused.
Since I own a license of VS .NET Developer, I'm allowed to redistribute MSDE
2000. But what do I read on the page mentioned above:
Q. Can I redistribute MSDE for use with multiple applications?
A. Multiple vendors cannot share a copy of MSDE; however, a single
vendor can utilize a single copy of MSDE for multiple applications, provided
the vendor has appropriate MSDE redistribution rights for each application.
What does this mean?
- I (as a developer/vendor) am allowed to install MSDE
as part of my application. (right?)
- Multiple applications I deliver are allowed to use the
same MSDE. (right?)
- Other vendor's application are not allowed to use the
MSDE I installed. (right?)
Now for the technical approach:
"Multiple vendors cannot share a copy of MSDE"
What is meant by "cannot". Let say I install the MSDE without an
instancename, and for the sake of simplicity I leave the SAPWD empty. In
that case any vendor could use the MSDE I installed. (right?) But that's not
allowed.
So, to be sure my applications recognize 'my copy' of MSDE, I should give it
an instancename (right?). And to be sure other vendors applications do not
use 'my copy' of MSDE, I would have to install it with a SAPWD that nobody
else knows (right?).
I hope someone can give me some clear answer(s) on this.
Willem
Hi Willem
| --
| Q. Can I redistribute MSDE for use with multiple applications?
|
| A. Multiple vendors cannot share a copy of MSDE; however, a single
| vendor can utilize a single copy of MSDE for multiple applications,
provided
| the vendor has appropriate MSDE redistribution rights for each
application.
| --
|
| What does this mean?
| - I (as a developer/vendor) am allowed to install MSDE
| as part of my application. (right?)
| - Multiple applications I deliver are allowed to use the
| same MSDE. (right?)
| - Other vendor's application are not allowed to use the
| MSDE I installed. (right?)
|
This is absolutely correct. You can use the copy of MSDE that you have
installed for any number of applications.
| Now for the technical approach:
| "Multiple vendors cannot share a copy of MSDE"
|
| What is meant by "cannot". Let say I install the MSDE without an
| instancename, and for the sake of simplicity I leave the SAPWD empty. In
| that case any vendor could use the MSDE I installed. (right?) But that's
not
| allowed.
|
| So, to be sure my applications recognize 'my copy' of MSDE, I should give
it
| an instancename (right?). And to be sure other vendors applications do not
| use 'my copy' of MSDE, I would have to install it with a SAPWD that nobody
| else knows (right?).
|
You have understood is correctly.
You can install the MSDE without any instance name, No SAPWD is not at all
recommended. You should assign some password for the SA user and there is a
security vulnerability, not only from the Data point of view but also for
the Security of the Computer. For more information on why you should assign
a password for SA user, please read the KB article #313418 at the following
URL :
http://support.microsoft.com/default...&Product=sql2k
If someone else starts using your installation of MSDE, then it is the
License violation by the other vendor, and not you. So to identify your
installation of the MSDE, you should give an instancename to it.
Ashish
This posting is provided "AS IS" with no warranties, and confers no rights.
|||Hi Ashish,
Thanks for the clear answer. It was exactly like I thought. But there are
still some things that confuse me. Suppose my client has a license for the
full version of SQL Server 2000. In that case, my database(s) could be
installed on that server. (right?)
Well, I'm not sure if I'm right. Or at least, I'm not sure if my setup
program is able to determine what server is running. SQL Server 2000 SP3 and
MSDE 2000A have exactly the same version number. If I'm right in the first
paragraph, I need another mechanism then just the version number to
determine if SQL Server or MSDE is running. (any pointers?)
Suppose my client is running SQL Server and my setup program is able to
determine that, what should I do? Use that server or install MSDE with an
instancename anyway? After your message I guess your advise will be the
latter one: MSDE with an instancename. But I wonder if that is a good
solution.
A lot of messages in this newsgroup make it clear that lots of people are
shifting to SQL Server/MSDE. Suppose most developers would start installing
MSDE with an instancename. As far as I know there can only be 16 instances.
That could soon raise a big problem.
If you can spare some time, I'd like to know what your thoughts are on these
issues. Thanks in advance.
Willem
"Ashish Ruparel [MSFT]" <v-ashrup@.online.microsoft.com> schreef in bericht
news:b6W7ORyKEHA.2364@.cpmsftngxa10.phx.gbl...
> Hi Willem
> | --
> | Q. Can I redistribute MSDE for use with multiple applications?
> |
> | A. Multiple vendors cannot share a copy of MSDE; however, a
single
> | vendor can utilize a single copy of MSDE for multiple applications,
> provided
> | the vendor has appropriate MSDE redistribution rights for each
> application.
> | --
> |
> | What does this mean?
> | - I (as a developer/vendor) am allowed to install MSDE
> | as part of my application. (right?)
> | - Multiple applications I deliver are allowed to use the
> | same MSDE. (right?)
> | - Other vendor's application are not allowed to use the
> | MSDE I installed. (right?)
> |
> This is absolutely correct. You can use the copy of MSDE that you have
> installed for any number of applications.
>
> | Now for the technical approach:
> | "Multiple vendors cannot share a copy of MSDE"
> |
> | What is meant by "cannot". Let say I install the MSDE without an
> | instancename, and for the sake of simplicity I leave the SAPWD empty. In
> | that case any vendor could use the MSDE I installed. (right?) But that's
> not
> | allowed.
> |
> | So, to be sure my applications recognize 'my copy' of MSDE, I should
give
> it
> | an instancename (right?). And to be sure other vendors applications do
not
> | use 'my copy' of MSDE, I would have to install it with a SAPWD that
nobody
> | else knows (right?).
> |
> You have understood is correctly.
>
> You can install the MSDE without any instance name, No SAPWD is not at all
> recommended. You should assign some password for the SA user and there is
a
> security vulnerability, not only from the Data point of view but also for
> the Security of the Computer. For more information on why you should
assign
> a password for SA user, please read the KB article #313418 at the
following
> URL :
>
http://support.microsoft.com/default...&Product=sql2k
>
> If someone else starts using your installation of MSDE, then it is the
> License violation by the other vendor, and not you. So to identify your
> installation of the MSDE, you should give an instancename to it.
>
> Ashish
> This posting is provided "AS IS" with no warranties, and confers no
rights.
>
|||hi Willem,
"Willem van den Broek" <willem@.chsd.nl> ha scritto nel messaggio
news:uGi19D6KEHA.620@.TK2MSFTNGP10.phx.gbl...
> Hi Ashish,
> Thanks for the clear answer. It was exactly like I thought. But there are
> still some things that confuse me. Suppose my client has a license for the
> full version of SQL Server 2000. In that case, my database(s) could be
> installed on that server. (right?)
if your dest. user already owns a full version of SQL Server 2000, you can
use that instance (default or named instance) as his will is..

> Well, I'm not sure if I'm right. Or at least, I'm not sure if my setup
> program is able to determine what server is running. SQL Server 2000 SP3
and
> MSDE 2000A have exactly the same version number. If I'm right in the first
> paragraph, I need another mechanism then just the version number to
> determine if SQL Server or MSDE is running. (any pointers?)
you don't have to relay on version number, but on edition...
you can use Transact SQL like
SELECT CAST(SERVERPROPERTY('edition') AS VARCHAR) AS [Edition]
--<--
Edition
Developer Edition
to get the edition of an installed instance, or resort on SQL-DMO COM
object
Select Case objServer.IsPackage
Case SQLDMO_MSDE
sBuf = "MSDE"
Case SQLDMO_OFFICE
sBuf = "Office 2000"
Case SQLDMO_STANDARD
sBuf = "Standard"
Case SQLDMO_ENTERPRISE
sBuf = "Enterprise"
Case Else
sBuf = "Unknown"
End Select

> Suppose my client is running SQL Server and my setup program is able to
> determine that, what should I do? Use that server or install MSDE with an
> instancename anyway? After your message I guess your advise will be the
> latter one: MSDE with an instancename. But I wonder if that is a good
> solution.
I think you shoul'd ask... if your user already owns SQL Server, probably
(again, probably) his situation/traffik requires the full blown edition
instead of the limited one... so you are expected to ask for user input...

> A lot of messages in this newsgroup make it clear that lots of people are
> shifting to SQL Server/MSDE. Suppose most developers would start
installing
> MSDE with an instancename. As far as I know there can only be 16
instances.
> That could soon raise a big problem.
yes.. and having all that instances running will require a good equipped
server =;-)
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtmhttp://italy.mvps.org
DbaMgr2k ver 0.7.0 - DbaMgr ver 0.53.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
-- remove DMO to reply
|||Hi Andrea (and everybody else who wants to respond),
Thanks for your reply. Your pointer to SERVERPROPERTY is probably the best
advice. One remark: the type is nvarchar(128).
I'm developing an InnoSetup (I'm sure you know it), that has to handle the
setups/updates of IE 6, MDAC 2.8, .NET Framework 1.1 and MSDE 2000A,
depending on what type of setup the enduser wants (Workstation (application
only), Network (database only) or Stand-alone (application and database)),
without having to bother the enduser with to many technical details. The
average housewife (no offence), who is able to switch on a computer, should
be able to run the setup.
The only problem I ran into was when to setup MSDE. I guess the best
approach is to only install it, with an instancename, when there is no
version of SQL Server available at all, or when SERVERPROPERTY('edition') of
a running version returns 'Desktop Engine'. I think it's not my
responsebility when the enduser runs 'Developer Edition' or 'Enterprise
Evaluation Edition'.
I know multiple instances require more systemresource, but I have to comply
by the rule "Multiple vendors cannot share a copy of MSDE", in case an
instance of MSDE is already running. I wonder if other developers, who
redistribute MSDE, take this in account?
If someone thinks different, or has additional information, please let me
know.
Willem
"Andrea Montanari" <andrea.sqlDMO@.virgilio.it> schreef in bericht
news:c6jd9h$cs348$1@.ID-207518.news.uni-berlin.de...[vbcol=seagreen]
> hi Willem,
> "Willem van den Broek" <willem@.chsd.nl> ha scritto nel messaggio
> news:uGi19D6KEHA.620@.TK2MSFTNGP10.phx.gbl...
are[vbcol=seagreen]
the[vbcol=seagreen]
> if your dest. user already owns a full version of SQL Server 2000, you can
> use that instance (default or named instance) as his will is..
> and
first[vbcol=seagreen]
> you don't have to relay on version number, but on edition...
> you can use Transact SQL like
> SELECT CAST(SERVERPROPERTY('edition') AS VARCHAR) AS [Edition]
> --<--
> Edition
> --
> Developer Edition
> to get the edition of an installed instance, or resort on SQL-DMO COM
> object
> Select Case objServer.IsPackage
> Case SQLDMO_MSDE
> sBuf = "MSDE"
> Case SQLDMO_OFFICE
> sBuf = "Office 2000"
> Case SQLDMO_STANDARD
> sBuf = "Standard"
> Case SQLDMO_ENTERPRISE
> sBuf = "Enterprise"
> Case Else
> sBuf = "Unknown"
> End Select
an[vbcol=seagreen]
> I think you shoul'd ask... if your user already owns SQL Server, probably
> (again, probably) his situation/traffik requires the full blown edition
> instead of the limited one... so you are expected to ask for user input...
are
> installing
> instances.
> yes.. and having all that instances running will require a good equipped
> server =;-)
> --
> Andrea Montanari (Microsoft MVP - SQL Server)
> http://www.asql.biz/DbaMgr.shtmhttp://italy.mvps.org
> DbaMgr2k ver 0.7.0 - DbaMgr ver 0.53.0
> (my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
> interface)
> -- remove DMO to reply
>
|||hi Willem,
"Willem van den Broek" <willem@.chsd.nl> ha scritto nel messaggio
news:OIz8cKDLEHA.2396@.TK2MSFTNGP12.phx.gbl...
> Hi Andrea (and everybody else who wants to respond),
> Thanks for your reply. Your pointer to SERVERPROPERTY is probably the best
> advice. One remark: the type is nvarchar(128).
> I'm developing an InnoSetup (I'm sure you know it), that has to handle the
> setups/updates of IE 6, MDAC 2.8, .NET Framework 1.1 and MSDE 2000A,
> depending on what type of setup the enduser wants (Workstation
(application
> only), Network (database only) or Stand-alone (application and database)),
> without having to bother the enduser with to many technical details. The
> average housewife (no offence), who is able to switch on a computer,
should
> be able to run the setup.
> The only problem I ran into was when to setup MSDE. I guess the best
> approach is to only install it, with an instancename, when there is no
> version of SQL Server available at all, or when SERVERPROPERTY('edition')
of
> a running version returns 'Desktop Engine'. I think it's not my
> responsebility when the enduser runs 'Developer Edition' or 'Enterprise
> Evaluation Edition'.
> I know multiple instances require more systemresource, but I have to
comply
> by the rule "Multiple vendors cannot share a copy of MSDE", in case an
> instance of MSDE is already running. I wonder if other developers, who
> redistribute MSDE, take this in account?
> If someone thinks different, or has additional information, please let me
> know.
> Willem
personally I do install MSDE with a separate installer, which is a VB6 [
still =;-D ] app... it only installs the engine and not the app database(s),
which will be created and populated at first application run, connecting to
the SQL Server/MSDE instance specified in the app settings.
it prompt the user for all available parameters, presenting a list of all
available (if any) instances of SQL Server/MSDE, and those info are retrived
via SQL-DMO.
it's up to the user the choice of what to do... installing MSDE or not.. if
the user wants to, all user's choices are passed as command line parameters
to setup.exe boostrap installer.. but this is another story.
but, if it's me, I didn't like to have 10/11 running MSDE instances on my pc
becouse of 10/11 separate applications from different vendors... =;-) but
this is another story too...
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtmhttp://italy.mvps.org
DbaMgr2k ver 0.7.0 - DbaMgr ver 0.53.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
-- remove DMO to reply
|||Hi Andrea,
Are you telling me that, if MSDE is running on the endusers system, it might
be used for your application, since the enduser has to decide himself? If
that's true, don't worry, I will not tell anybody. ;-)
Actually, I am considdering doing that myself. I also do not like the idea
of running multiple instances. But there is another, more legal, reason.
After some more reading, I don't think it's not allowed to use an already
running MSDE for my application(s). I have registered with Microsoft for
redistributing the MSDE. Therefore I have to comply by the rules in
MSDE_redist_EULA.doc. In this document I cannot find anything about
'multiple' or 'instance'. So if it's not forbidden by the EULA, it's
probably allowed. Don't you think?
Installing the database is my next issue, but I'll put that in a new
message.
Willem
"Andrea Montanari" <andrea.sqlDMO@.virgilio.it> schreef in bericht
news:c6le4u$bvk0q$1@.ID-207518.news.uni-berlin.de...
> hi Willem,
> personally I do install MSDE with a separate installer, which is a VB6 [
> still =;-D ] app... it only installs the engine and not the app
database(s),
> which will be created and populated at first application run, connecting
to
> the SQL Server/MSDE instance specified in the app settings.
> it prompt the user for all available parameters, presenting a list of all
> available (if any) instances of SQL Server/MSDE, and those info are
retrived
> via SQL-DMO.
> it's up to the user the choice of what to do... installing MSDE or not..
if
> the user wants to, all user's choices are passed as command line
parameters
> to setup.exe boostrap installer.. but this is another story.
> but, if it's me, I didn't like to have 10/11 running MSDE instances on my
pc
> becouse of 10/11 separate applications from different vendors... =;-)
but
> this is another story too...
> --
> Andrea Montanari (Microsoft MVP - SQL Server)
> http://www.asql.biz/DbaMgr.shtmhttp://italy.mvps.org
> DbaMgr2k ver 0.7.0 - DbaMgr ver 0.53.0
> (my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
> interface)
> -- remove DMO to reply
>
|||hi Willem,
"Willem van den Broek" <willem@.chsd.nl> ha scritto nel messaggio
news:%23IbrmjHLEHA.268@.TK2MSFTNGP11.phx.gbl...
> Hi Andrea,
> Are you telling me that, if MSDE is running on the endusers system, it
might
> be used for your application, since the enduser has to decide himself? If
> that's true, don't worry, I will not tell anybody. ;-)
ROTFL

> Actually, I am considdering doing that myself. I also do not like the idea
> of running multiple instances. But there is another, more legal, reason.
> After some more reading, I don't think it's not allowed to use an already
> running MSDE for my application(s). I have registered with Microsoft for
> redistributing the MSDE. Therefore I have to comply by the rules in
> MSDE_redist_EULA.doc. In this document I cannot find anything about
> 'multiple' or 'instance'. So if it's not forbidden by the EULA, it's
> probably allowed. Don't you think?
actually I see a problem in the licensing model... ok, probably is only my
vision...
since october 29, 2003 MSDE 2000 Release A has been released as "the free
version of SQL Server"
(http://www.microsoft.com/sql/msde/do...s/download.asp) ...
if I'm and end user, I can download it, install it, and redirect all my
databases on one single instance of my MSDE downloaded and installed
instance... if it's free, and no limitation is provided in MSDE 2000 rel A
EULA (just re-readed for a cross check) regarding instances requirements,
then I'm allowed to put all my 10/12 application's databases from different
vendors in the same MSDE instance...
I have to ask...

> Installing the database is my next issue, but I'll put that in a new
> message.
you are welcome =;-)
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtmhttp://italy.mvps.org
DbaMgr2k ver 0.7.0 - DbaMgr ver 0.53.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
-- remove DMO to reply
|||Hi Andrea,
The "Appropriate Uses of MSDE FAQ"
(http://www.microsoft.com/sql/msde/howtobuy/msdeuse.asp)
is at least very confusing. Two Q/A's on that page:
Q. Can I include and redistribute MSDE as part of applications that I
develop?
A. Yes, you can register to receive free redistribution rights for
MSDE. Also, if you obtained MSDE by licensing one of the following products
or services, you are licensed to redistribute MSDE as part of your
applications:
a.. ASP.NET Web Matrix*
b.. MSDN Universal, Enterprise, and Professional subscriptions
c.. Microsoft Office XP Developer Edition
d.. SQL Server 2000 Developer, Standard, and Enterprise Editions
e.. Microsoft Visual Studio .NET Architect, Developer, and Professional
Editions*
f.. Microsoft Visual FoxPro 7.0 or 8.0
*When obtained by downloading ASP.NET Web Matrix, MSDE is provided
only for use in conjunction with an application developed by using
ASP.NET Web Matrix.
Q. Can I use and redistribute MSDE in conjunction with applications
developed using non-Microsoft development tools?
A. Yes, you can redistribute MDSE with applications built using any
application development platform.
Maybe I should start developing in Delphi, or some other non-MS devtool. In
that case it seems there are no restrictions at all...
I'll have to re-read the EULA word by word. I think that's the only document
that really matters. I wonder what the person who created the Q and A page
was smoking or sniffing ;-)
Willem
begin 666 ts.gif
J1TE&.#EA`0`!`( ``````/___R'Y! $`````+ `````!``$```(!1 `[
`
end
|||hi Willem,
"Willem van den Broek" <willem@.chsd.nl> ha scritto nel messaggio
> ....
> Maybe I should start developing in Delphi, or some other non-MS devtool.
In
> that case it seems there are no restrictions at all...
I do think the restrictions will be the same becouse we are not talking
about dev tools but about MSDE, which, you know, is now free...

> I'll have to re-read the EULA word by word. I think that's the only
document
> that really matters. I wonder what the person who created the Q and A page
> was smoking or sniffing ;-)
ehm.... actually I do know that person, in e-mail manner I mean...
I'm gonna ask someone who "probably" knows better, if I have further info
I'll post here..
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtmhttp://italy.mvps.org
DbaMgr2k ver 0.7.0 - DbaMgr ver 0.53.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
-- remove DMO to reply

No comments:

Post a Comment