Monday, June 27, 2011
Default Database
/***********************************************
* This gives users a dummy default database
* in order to prevent them from:
* 1) having 'master' as a default database
* 2) not being able to connect to the server
* because their default database has been
* dropped, recreated, or restored
***********************************************/
USE master
GO
IF NOT EXISTS ( SELECT TOP 1 1 FROM sysdatabases WHERE name = 'uno' )
BEGIN
CREATE DATABASE [uno]
END
GO
ALTER DATABASE [uno] SET READ_WRITE
GO
USE uno
GO
GRANT SELECT TO [public]
GO
DECLARE @name sysname
, @sql nvarchar(max)
DECLARE login_cur CURSOR FAST_FORWARD FOR
SELECT name
FROM master..syslogins WITH (NOLOCK)
WHERE upper(name) LIKE '%'
OPEN login_cur
FETCH login_cur INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'IF NOT EXISTS ( SELECT TOP 1 1 FROM sysusers WHERE name = ''' + @name + ''' ) '
SET @sql = @sql + 'CREATE USER [' + @name + '] FOR LOGIN [' + @name + '] WITH DEFAULT_SCHEMA=[dbo];'
EXEC sp_executesql @sql
SET @sql = 'ALTER LOGIN [' + @name + '] WITH DEFAULT_DATABASE=[uno];'
EXEC sp_executesql @sql
FETCH login_cur INTO @name
END
CLOSE login_cur
DEALLOCATE login_cur
GO
--ALTER DATABASE [uno] SET READ_ONLY
--GO
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment