hi Troy,
[quoted text, click to view] Troy Wolbrink wrote:
>
> This sounds like a reasonable way to go. Might someone be able to
> point me to where this is offiically documented by MS?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsse/html/sseoverview.asp
Engine Specifications
......
SQL Server Express by default installs as a named instance called
SQLEXPRESS. This particular instance may be shared among multiple
applications and application vendors. We recommend that you use this
instance unless your application has special configuration needs.
[quoted text, click to view] >
> Like you, I've written a simple program to shell command-line
> arguments to help our IT staff to install MSDE, and I'm very
> comforable and familiar with this aspect of the installation. But in
> a different context, where this installation is performed by the
> masses, it must be transparent. It would be pointless to ask users
> what they'd like for the "sa" password or what the "securitymode"
> should be! So what are the recommended way to install the common
> "SQLServer" instance (ie. "sa" password, security mode, disable
> network protocols, etc.)?
actually, AFAIK, no guide is provided at all...
sa password... you should set it to something "difficult" to hack.. but what
then? should you provide feedback of that to end users? should you store it
somewhere for user's review? I understand your problem, but, as you already
know, SQL Server is NOT Jet, and some level of extra complexity is "by
default" :D
security mode... depending on your needs... I know that my apps are often
used in workgroups not under a domain controller so I obviously require
mexed security mode... all my apps include an internal module to add/manage
logins (mapping them to db-users and db-roles I set up for security access
[and my own external management tool is provided for eventual skilled
administrators)... as long as scripted jobs to define a minimal backup
strategy.. I have now to modify it as SQL Server Agent is no longer provided
with SQLExpress in order to take advantage of the native Windows scheduler:(
network protocols... you know the default.. but, again, if the db engine
should be available on the lan...
the question is... should you trust your customers/users?
I do trust them for this kind of things, it's their system, their money (ok,
my time).. I do not trust them for dayly backups or the like... this is
becouse I miss the SQL Server Agent :D
[quoted text, click to view] >
> I read that article, and it actually raises the point that normal
> users running as non-Administrators can't attach database files ad
> hoc to their local server, unless using User Instances.
this is a "standard" SQL Server policy... RANU provides a sort of
"workaround" of that, but other implications raises..
[quoted text, click to view] >A MAJOR
> reason for using SQL Server Express is to allow merge replication
> subscriptions over the internet/https. But the article mentions that
> not being able to use replication is a limitation of User Instances.
actually things are quite different..
http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx SQLExpress provides the Service Broker but only as a subscriber...
it supports Merge and Transactional replication but, again, only as a
subscriber...
HTTP EndPoints for WebServices are not available as well...
[quoted text, click to view] > So I either have to require users run as Administrators (bad idea),
you should actually only run the account running SQL Server as a local admin
or LocalSystem or whatever.. actually even to much permissions are given
under these roles...
[quoted text, click to view] > give up on using replication features (and thus the whole point of
> switching to SQL Server 2005), or I need a way for my program (but
> not users) to know the "sa" password (sounds like an impossible
> security issue). Perhaps this is a reason for me to install my own
> instance (or to stay with JET!).
perhaps you can define an "internal" used only login you create at database
installation time to perform attach and the like..
you can this way rely on your "internal" defined solution for task requiring
administrative permissions... the only requirement is running the initial
setup as local admin in order to grant the required privileges to create
your required database(s) the way you like it/them to be created, create
your "internal used" login with sysadmin membership and you are done...
every time your app requires to do "critical" tasks you only need to open a
new connection under this "admin login" credentials...
[quoted text, click to view] > Sounds great in a non-shrink-wrap deployment environment. I'd really
> be stretching many of my users to tell them "run this setup on the
> machine which acts as the server", and "run this on all the client
> machines". I can appreciate how much this helps IT staff to get
> things going, but it's still to technical for my users.
I understand, but a minimal skill should be provided/required :D
what if they all installs "local" instances? they all run separated
applications?
I do not think so.. I trust you already provided a way to tell "this is a
client, do not install the Jet database here as this machine will connect to
the other one"..
[quoted text, click to view] > By the way, this is getting more and more complicated, so does
> staying with JET and starting to use JET Replication seem like a bad
> or good idea?
never used Jet replication... I do not know how stable it is, even in a
multi-user scenario...
[quoted text, click to view] >Choosing it back in 1999 was a very successful move for
> me, and has given my development/deployment environment alot of
> simplicity. I really love how the entire database is kept in one
> file and deployment is practically trivial. I'm starting to wonder
> if the benefits of porting my app to SQL Server and using all its new
> shiny features are enough to outweigh the added complexity of trying
> to use SQL Server to emulate a file-based application (in a way that
> is perfectly natural for Jet).
things always have to get complicated, or we loose our job opportunities :D
behind the joke, it'sobvious that Jet solutions are "simple and clear"... no
extra needs but MDAC (and not always) and a db filecopy... and for single
users this makes sense... no bloat...
but for even very very small workgroups of 2 machines I do not trust it any
more... I've seen to much mdb databases trashed becouse of power outage or
bad network writes, or simply becouse of exceptional user activity where the
db must be compacted/repaired at least once an hour.. IMHO, SQLExpress
solves this trust/stability requirements.. ok, some extra skill requirements
are needed, but usually you run SQL Server with no harm becouse of its
implicit robustness, autotuning, security features...
ah.. you obviously already know it, but just in case (:-D) ... SQL Server
does not have to emulate a file-based application as it is a client-server