The following are instructions for setting up a connection to an Active Directory (AD) Domain secured SQL Server using either SQL Server Management Studio or Visual Studio. This is especially applicable when not using a domain attached PC.
Category: SQL Server 2008
After installing SQL Server 2008 R2 on a Windows 2008 server you will need to configure the firewall (if it’s turned on!) to allow access to the SQL server. Here is the simple method using the interface and assumes the following:
- The SQL Instance is the default (first installed)
- The ports have not been manually configured
- Nothing too exotic like database mirroring is required.
- Open the Firewall either from the Control panel
or by running WF.msc
- There are 3 default firewall profiles. One or more can be active depending on what and how you have configured your NICs. You will need to ensure you are editing the correct profile. Here you can see that mine is on a domain, so my Domain Profile is Active.
- Select ‘Inbound Rules’ in the left hand pane.
- Click on ‘New Rule…’ in the right actions pane.
- select Port Rule Type and click Next>
- Set TCP and Specific local Ports to 1433 and click Next>
- Leave the default of ‘Allow the connection’ and click Next>
- If you don’t ever want SQL to be directly accessible on a Public network (assuming you are going to ever connect your SQL server directly to the internet for some reason!!) then un-check the ‘Public’. Otherwise just click Next>
- Name it SQLPort and give it a description and click Finish.
That will enable inbound connections to your SQL Server. If you are also enabling SQL Browser Service then you will need to add UDP Port 1434 too another inbound rule.
If you have more than one instance of SQL then you will need to set the port and create rules for them.
For full details on ports and setting it up go to http://msdn.microsoft.com/en-us/library/cc646023(v=SQL.105).aspx
I have finally perfected a nice script for killing connections to databases. Although basic, I found many of the ones I google’d, had one problem or another that stopped them working straight away, which just wastes time. This one works! I have just used it.
Just replace the database name and it’s good. It is easy to alter it to work across a list of databases too.
-- ============================================= -- Author: Nicholas Rogoff -- Create date: 04/03/2010 -- Description: Script that Kills all connections to a database -- except the current one -- ============================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DECLARE @execSql NVARCHAR(1000) DECLARE @databaseName VARCHAR(100) DECLARE @NoKilled INT -- *** CHANGE THE NAME OF THE DATABASE *** --- SET @databaseName = '#### Replace this with a database name here ####' PRINT 'START: Killing active connections to the "' + @databaseName + '" database' -- Count Connections select @NoKilled = COUNT(*) from master.dbo.sysprocesses where db_name(dbid) = @databaseName and DBID <> 0 and spid <> @@spid -- Create the sql to kill the active database connections set @execSql = '' select @execSql = @execSql + 'kill ' + convert(char(10), spid) + ' ' from master.dbo.sysprocesses where db_name(dbid) = @databaseName and DBID <> 0 and spid <> @@spid exec (@execSql) PRINT 'END: Killed "' + CAST(@NoKilled AS VARCHAR(4)) + '" active connections to the "' + @databaseName + '" database' GO