If there's one thing constant in the IT and hosting industries, it's that technology is constantly evolving. For me, keeping up with it all has been nothing short of a challenge. When Microsoft SQL Server 2005 came out towards the end of 2005, and now SQL 2008, I pushed it to the side. It was just another thing I didn't have time to learn. But as my customers started asking for it, I realized I had to bite the bullet and get it installed.
The problem is I knew that when I implemented MS SQL 2005 (and eventually 2008) in my hosted environment my customers would need help connecting to it. I had to find a simple way for my customers to easily access their SQL databases. Since I was already using MyLittleAdmin (MLA) for my MS SQL 2000 installation and my customers were happy with it, I naturally looked to myLittleTools who by now had created a version of MLA for MS SQL 2005.
I can hear you ask, why not save the money and let your customers use SQL Management Studio to access their MS SQL 2005 databases? As a host, it's often difficult to recoup the costs on tools like this since they're typically "value added" as part of the hosts offerings. Well, consider that opening up your firewall ports to allow direct access to your SQL Server via SQL Management Studio would make the server more vulnerable to DDoS , script kiddies, and viruses. Second, many hosted users have no experience with MS SQL, much less the management tools and how to find and install them. They just know the app they just bought and paid for is asking them to set up and configure a SQL Server database. Third, external access to a SQL Server costs money in terms of bandwidth. Customers will often tend to try and permanently connect their external web sites to your SQL Server which causes large spikes in external bandwidth usage and, as many of you may know, is hard to track back to an individual database.
A web-based tool like myLittleAdmin takes all of this out of the equation. You don't need to open the SQL ports directly to the Internet since users are accessing their databases via the web interface over port 80 (or even better, port 443) and the interface, in turn, is communicating with the SQL Server behind the scenes. You can then lock your internal firewall policies down as necessary to control connectivity to your database even more.
But, you might also ask, what about the free MS SQL web-based management tools you can find out there? Well, the short answer is IF, and that's a big IF, you can find a decent web administration product for MS SQL 2005, it's probably going to be nowhere as complete as MLA.
So, that being said, let's get started. This article is meant to provide you with a high level overview of MLA 2005 from a web hosting perspective and how it helps you provide very comprehensive control of your MS SQL 2005 using a web-based administrative interface. This review is no way fully comprehensive of MS SQL 2005 or MLA2005. There's just too much to talk about and too little space to do it. But it should give you a good idea of what MLA 2005 is capable of and how well a fit it is for web hosts who need to offer their customers easy but robust access to their SQL 2005 databases.
Installation in IIS 6.0 on a Windows 2003 Standard SP2 box, as you would expect, is straightforward. There is no executable to install. In fact, it goes in much like PHP installs. Just copy the files into a web accessible directory, enable the version of .NET you want to use on the site (MLA 2005 supports both .NET and .NET2), configure the MLA folder as an IIS application, edit the config XML file to setup the database connectivity, then browse to the web directory you installed MLA. Oh, and don't forget to copy the license file to the root of MLA. That's it!
The MLA installation documentation is very simple and spells this all out clearly so I won't go step by step through the install process here. Just follow the install guide step by step and you won't have any problems.
Where I did have an issue, and this was not related to MLA, was configuring MS SQL 2005 to allow remote connections. You need to ensure you do this or you'll pull your hair out trying to figure out why MLA can't talk to MS SQL 2005. The following KB article will get you set up right: http://support.microsoft.com/kb/914277
Once MLA is installed and connecting to MS SQL 2005 correctly, you can configure the features that customers will have access to by modifying some XML configuration files. You can easily turn on or off features you want to offer, which in turn affects what the user will see in the MLA web interface.
Once you've done this, and log into MLA, you should see something like the following. In this case, all features are turned on so you can see what is available through this app.
Some features in the navigation tree that you usually don't want to show to end-users, such as System Databases, can be removed from the XML file that handles the tree view hiding these options from users. All the config options are conveniently located in one XML folder which makes it very simple to modify and customize MLA to display only what you want the customer to see and use. And the manual does a nice job of explaining what you need to modify to remove some of the more worrisome features for shared database setups.
In addition to a wealth of features already included in MLA 2000, including easy management of your MS SQL data, table structure, stored procedures, backups, and more, MLA 2005 sports a cleaner, more intuitive interface, support for database schemas, SSL certificates and asymmetric/symmetric keys, database synonyms, database snapshots, and an enhanced editable data grid making data editing a breeze for end users.
The administrator-editable config file allows you to turn on or off practically any feature that MLA 2005 offers so if you want to just allow customers to view and edit their table data you can, or if you want to allow them complete control over their databases then you can turn all the features on. It's up to you.
I'll briefly discuss each of the main areas of MLA 2005 below since these pretty well mimic the features of SQL Management Studio which you are already hopefully familiar with. Each area is accessible via an expanding contents menu at the left side of the application.
The Connection menu area has a couple of options: Connection Info and Disconnect. Connection info has two tabs that shows the connection information being used to connect to the database and the license information. You'd probably want to remove the license tab through the appropriate XML file as it's not necessary for the end-user to see. The disconnect option to log the user out of the interface.
The Databases menu section is where your customers will be doing a lot of the real work they need to do. Here is where users can view their databases, edit their tables, etc..
You can see in the capture of the expanded menu from the databases section.
The System Databases section shows you the usual list of system databases. Users can view the data but without explicit access to the tables, they can't modify anything. Still, I would remove this tree item from the XML to ensure they don't "play around". There's no need for them to see this information.
The Database Snapshots area allows you to create a read-only, stable snapshot of a database at a point in time. This is useful for recovery of a database if, say, you damage data. Snapshots have pros and cons that are beyond the scope of this article, and are an Enterprise-only feature so many of you smaller hosts probably won't be able to offer it. As with all tree items, you can remove it from the tree so it can't be used. The point is, it's there if you need it and can take advantage of it.
The User Databases is where users can administer their databases. Users will only see the databases they're entitled to see. You can see by the expanded view image at left that on each user database there are more features than many customers will probably ever need or use, but the important thing is they're all there and available and all able to be turned on or off depending on your needs.
Within the User Databases section, users can modify their tables, views, create synonyms for their databases, create and manage Stored Procedures and Triggers, create and view Full Text catalogs, and manage security on their database.
Many of you will be using a Control Panel of some sort to allow your customer to create and manage their database users so the Security section probably can safely be hidden from view since we usually don't want users creating users at will outside of the control panel. I'll briefly cover some of the main areas of MLA 2005 to whet your appetite!
When clicking on the database name in the contents menu, the list of available tables appears in the right window pane. Left clicking on the table name pops up a nifty little menu containing the operations available to that table. You can easily create a new table, modify the structure of an existing table, open a table to edit the data, and much more. This is a nice feature that MLA 2000 didn't have and it's a welcome addition.
Creating a new table is quite simple. Choose New Table from the menu and the following screen opens.
As you can see, you have all the options available to you to create the table as you would in the SQL Management Studio. You can even simply create T-SQL scripts by clicking the little script icon at the top left of the section (circled).
If you instead click the Open Table menu item, the table opens and the data is then available for viewing and editing as in the following screenshot. Note the small menu icons. At the top you can go back up a level, refresh the data, or synchronize the treeview with the database. Below that you can export the data a XML, XLS, or CSV, and create a new data item. Then next to each row of data you can either delete the row or edit the row. You can also modify the content just by clicking on the column data.
When editing the row, you can easily modify the data contained in the row as in the following screenshot .
Views, Stored Procedure, and most other more advanced operations on the database can be created through the respective content menu items. Creating these operations can be done by entering the T-SQL code into the script area and then clicking the create button as in the following screenshot.
Notice that a nice template is created for you so you can just plug your T-SQL code in, click the create button, and you're done. Most of the other more advanced operations are set up this same way so I won't bore you to death with an explanation of each section.
New with MS SQL 2005 and MLA 2005 was the ability to create a database synonym so you don't have to use the long notation to reference a database and it's perfect if you need to switch to another database temporarily to, say, do some testing then switch back. Customers should like this feature quite a bit and it's easily configured through MLA 2005.
The Security contents menu section allows you to create, view, edit, and delete all logins on the server, assign server roles, and manage server credentials. I would argue that this section isn't really appropriate for a shared server environment so it should be hidden from the user by modifying the appropriate XML file. But if this tool is being used to manage your server in a non-shared environment, it could be very useful. Again, like all features in MLA, they're there if you need them and can be hidden if you don't. (Users with no admin rights can only see their own login)
Server Objects allows you to create server-level objects such as backup devices, linked servers, and triggers. This section allows you to view any available backup devices, linked servers, and server triggers.
The management section allows you to view any active sessions related to the currently logged in user. If you log in as the system administrator, you'll be able to see all active sessions on the server. The error logs are usually only viewable by system administrators.
The tools section provides a number of useful features such as the database query, backup wizard for web hosting, detach and attach wizard, shrink database, and a tie-in to myLittleBackup.
The New Query feature makes it simple to type in some SQL and get a result set back, much like the old Query Analyzer. You can also import a pre-made .sql script using the folder icon at the top right of the screenshots as well, and set limits on the number of results you want returned in the options tab.
The results of the query are returned nicely formatted
You can also easily generate insert scripts to reimport data into a table, and use the CSV import wizard to import data from a CSV file.
Backup and Restore Wizards. myLittleAdmin also offers two wizards for backup and restore. One is a complete backup wizard and shown in the screenshots below. However, as a web host you probably don't want to give your users access to all these capabilities so there is also a built-in web hosting version of the Backup and Restore wizard which is substantially limited but will allow users to do a basic backup and restore of their databases if necessary.
Detach and Attach Wizards. myLittleAdmin can detach and reattach databases just as you can do via the SQL Management Studio. While detaching a database is probably not something you want offer web-hosted customers as they may inadvertently disconnect their databases, the attach feature may be handy since many users are coming from other hosts and need to easily import their MS SQL database into their hosting plan. The attach features makes it easy for them to do this.
Detaching a database.
Attaching a database.
Shrink Database. How many times have your users databases grown out of hand? If you haven't set your MS SQL databases Recovery Model to Simple the transactions logs will grow rapidly and you'll end up running out of disk space before you know it. The Shrink Database feature allows you to shrink the database size and dump those old transactions just as you can in the SQL Management Studio.
Change Password. If you so choose, you can allow your database users to change their database user password through this function. Most web hosting control panels do this through their interface so this is really not a necessary feature for hosted operations, but for individual and company operations this would be a very handy feature.
Finally, there is a preferences section that the user can use to change their desired display and language preferences. They can change features such as skins (if you have additional skins installed), their language settings (by default English, French, Deutsch, and Japanese are available), their date formats, and how many rows they want to be displayed in data grids.
Hopefully this article gives you a quick overview on myLittleAdmin for SQL Server 2005. As you can see, this is a complex and very complete application that gives you almost all the features you have in the MS SQL 2005 Management Studio, but it's totally web-based and totally customizable.
For you hosts out there, this is an excellent piece of software to consider providing to your customers. It helps keep your SQL Servers protected by allowing you to close off all external ports to your SQL Server but still allowing comprehensive control of your customer's databases. And your customers won't need to know how to install and use the SQL Management Studio software on their desktops. That will help reduce the number of daily headaches you have to deal with from Denial of Service attacks, script kiddies, viruses, and bandwidth spikes.
No MS SQL database management software I have looked at comes close to the completeness of this application and your customers will appreciate having the ability to truly manage their databases from anywhere they have a web connection.